2015-10-29 6 views
0

В моем универсальном приложении Windows (Windows 10) мне нужно создать поток, который длится все время работы приложения. Работа пользовательского интерфейса будет выполняться в потоке пользовательского интерфейса, в то время как некоторые задачи будут обрабатываться в отдельном потоке в очереди. Из того, что я понимаю, System.Threading не поддерживается в универсальных приложениях. Я читал о Threadpool, но я не понимаю, как он может решить мою цель.Windows Universal App Threading

Вся помощь приветствуется.

+0

Какую работу вы планируете выполнять в своей теме? – spender

+0

@spender в основном передача данных через сокет - но разъем не может быть отключен – kshitijgandhi

+1

Итак, это заставляет меня думать, что вы попадаете в проблему XY. Принципы универсальных приложений - отвлечь вас от блокировки API. Если вы используете async/await и задачи, можно взаимодействовать с сетью через один (не отсоединяющий) сокет без необходимости какой-либо явной потоковой передачи, сохраняя UI-жидкость. Единственный случай, когда дополнительные потоки * могут потребоваться *, - это в случае интенсивной работы с ЦП. – spender

ответ

0

Для получения дополнительной информации о заправке посетите страницу this. ThreadPool Образец:

class Program 
    { 
     static void Main(string[] args) 
     { 
      ThreadPool.QueueUserWorkItem(new Program().testThread1); 
      ThreadPool.QueueUserWorkItem(new Program().testThread2); 

      Console.ReadLine(); 
     } 

     public void testThread1(Object threadContext) 
     { 
      //executing in thread 
      int count = 0; 
      while (count++ < 10) 
      { 
       Console.WriteLine("Thread 1 Executed "+count+" times"); 
       Thread.Sleep(100); 
      } 
     } 

     public void testThread2(Object threadContext) 
     { 
      //executing in thread 
      int count = 0; 
      while (count++ < 10) 
      { 
       Console.WriteLine("Thread 2 Executed " + count + " times"); 
       Thread.Sleep(100); 
      } 
     } 
    } 
Смежные вопросы