.NET 4.x Запуск метода в основном потоке из другого - C#

Узнай цену своей работы

Формулировка задачи:

Есть код:
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();
        }
    }
Вопрос такой: DoSomethigWithNumber(), запущенный в классе SomeClass будет выполняться в уже новом потоке (Task.Factory.StartNew) или в исходном?
Цель: DoingSomething запускается в новом потоке, а DoSomethigWithNumber в исходном. Подскажите пожалуйста - как такое сделать?

Решение задачи: «.NET 4.x Запуск метода в основном потоке из другого»

textual
Листинг программы
var task = Task.Factory.StartNew(() => Whatever());  
task.ContinueWith(Callback, TaskScheduler.FromCurrentSynchronizationContext())

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5
Похожие ответы