Альтернатива классу Dispatcher для .NET 2.0

Я новичок в работе с потоками. Изучая образец WPF (приложение Wix Bootstrapper), я столкнулся с использованием метода System.Windows.Threading.Dispatcher в методе Run(), например:

MyDispatcher = Dispatcher.CurrentDispatcher;
.
.
//rest of the code 
.

Dispatcher.Run(); //This I believe invoke the app in a thread (plz correct me if I'm wrong).

Требование: я пытаюсь реализовать то же самое в приложении формы Windows (по какой-то причине должно быть для Net FW 2.0), где у меня есть только пространство имен System.Threading.

*Вопрос.*Как я могу реализовать аналогичные функции, такие как Dispatcher, используя пространство имен System.Threading?


person Farrukh Waheed    schedule 13.01.2014    source источник
comment
я не следую вопросу, вы спрашиваете, как вы вызываете операцию в новом потоке?   -  person T McKeown    schedule 13.01.2014
comment
К вашему сведению, у вас, вероятно, будет больше проблем, чем просто Dispatcher.Run, при переходе от .NET 3.5 обратно к .NET 2.0.   -  person John Saunders    schedule 13.01.2014
comment
Попробуйте это   -  person Sriram Sakthivel    schedule 13.01.2014


Ответы (2)


Вот пример кода для .NET 2.0.

// Called from any method
new Thread(() => { UpdateRequest(); }).Start();

// Background activity
private void UpdateRequest() {
  UpdateUI("new text everytime" + DateTime.Now.ToString());

}

private void UpdateUI(string request)
{

  if (control.InvokeRequired)
  {
    this.Invoke(new Delegate(UpdateUI), new object[] { request });
  }
 }

Обновление: случайно использовал TPL, так как долгое время не использовал .NET 2.0, заменил нативную многопоточность.

person GeekzSG    schedule 13.01.2014
comment
Task.Factory.StartNew .Нет 2.0 ? - person Sriram Sakthivel; 13.01.2014
comment
TPL фабрики задач не был доступен в версии 2.0. - person T McKeown; 13.01.2014

Используйте метод Control.Invoke и метод < свойство href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invokerequired.aspx" rel="nofollow">Control.InvokeRequired.

person John Saunders    schedule 13.01.2014