.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())