.NET 4.x Запуск метода в основном потоке из другого - C#
Формулировка задачи:
Есть код:
Вопрос такой: DoSomethigWithNumber(), запущенный в классе SomeClass будет выполняться в уже новом потоке (Task.Factory.StartNew) или в исходном?
class AnotherClass { public EventWaitHandle wh = new AutoResetEvent(false); private Int32 currentNumber; public void DoSomething(Int32 endFrom) { Task.Factory.StartNew(() => { for (int i = 0; i < endFrom; i++) { SomeClass mm = new SomeClass(); mm.DoingSomething(i, this); wh.WaitOne(); } }); } public void DoSomethigWithNumber(Int32 myNumber) { currentNumber = +myNumber; } }
class SomeClass { private Int32 currentNumber; public void DoingSomething(Int32 number, AnotherClass myClass) { myClass.DoSomethigWithNumber(number); Thread.Sleep(1000); myClass.wh.Set(); } }
Цель: DoingSomething запускается в новом потоке, а DoSomethigWithNumber в исходном. Подскажите пожалуйста - как такое сделать?
Решение задачи: «.NET 4.x Запуск метода в основном потоке из другого»
textual
Листинг программы
var task = Task.Factory.StartNew(() => Whatever()); task.ContinueWith(Callback, TaskScheduler.FromCurrentSynchronizationContext())
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д