Я создал Testbox, чтобы узнать что-то о многопоточности в приложениях Windows Form.
Silverlight и Java предоставляют Dispatcher, который действительно помогает при обновлении
Элементы графического интерфейса.
Примеры кода:
Делегат класса объявления
public delegate void d_SingleString(string newText);
Создать тему
_thread_active = true;
Thread myThread = new Thread(delegate() { BackGroundThread(); });
myThread.Start();
Функция резьбы
private void BackGroundThread()
{
while (_thread_active)
{
MyCounter++;
UpdateTestBox(MyCounter.ToString());
Thread.Sleep(1000);
}
}
Делегирование обновлений TextBox
public void UpdateTestBox(string newText)
{
if (InvokeRequired)
{
BeginInvoke(new d_SingleString(UpdateTestBox), new object[] { newText });
return;
}
tb_output.Text = newText;
}
Есть ли способ объявить объявление Delate IN методом BeginInvoke?!
что-то вроде
BeginInvoke(*DELEGATE DECLARATION HERE*, new object[] { newText });
Большое спасибо,
Rayt