Так что я новичок в таймерах и потоках, и я не могу узнать, как создать таймер, который вызывает функцию, которая редактирует / изменяет элемент управления в моем MainWindow.
Код Xaml:
<Window x:Class="TimerTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBox Height="287" HorizontalAlignment="Left" Margin="12,12,0,0" Name="textBox1" VerticalAlignment="Top" Width="479" />
</Grid>
</Window>
C # код:
namespace TimerTest
{
public partial class MainWindow : Window
{
//Declaring my aTimer as global
public static System.Timers.Timer aTimer;
//Function that is called
public void OnTimedEvent(object source, ElapsedEventArgs e)
{
textBox1.Text += "SomeText ";
}
public MainWindow()
{
InitializeComponent();
aTimer = new Timer();
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 1000; // every 5 seconds
aTimer.Enabled = true;
}
}
}
Ошибка, которую я получаю:
«Вызывающий поток не может получить доступ к этому объекту, потому что другой поток владеет им».
П.С .: Кроме того, я не очень хорош с делегатами, так что если вы думаете, что кто-то может помочь мне в этом случае, пожалуйста, опубликуйте пример кода.