2010-04-18 3 views
1

У меня есть метод, который вызывается довольно часто, с текстом, происходящим в качестве параметра ..Помощь относительно C# пул потоков

Я смотрю на создание пула потоков, который проверяет строку текста, и выполняют действия основанный на том, что ..

Может кто-нибудь помочь мне с основами создания пула потоков и стрельбы из новых потоков, пожалуйста? Это так чертовски запутанным ..

+0

Вы будете приятно удивлены тем, насколько это просто. – ChaosPandion

ответ

1

Вам не нужно создавать пул потоков. Просто используйте существующий пул потоков, который управляется .NET. Чтобы выполнить функцию Foo() на резьбовой нитке, сделайте следующее:

ThreadPool.QueueUserWorkItem(r => Foo()); 

Все сделано!

Не забудьте зафиксировать исключения в вашей функции Foo() - если исключение ускользает от вашей функции Foo, она завершит процесс.

1

Вот простой пример, который должен вас начать.

public void DoSomethingWithText(string text) 
{ 
    if (string.IsNullOrEmpty(text)) 
     throw new ArgumentException("Cannot be null or empty.", "text"); 

    ThreadPool.QueueUserWorkItem(o => // Lambda 
     { 
      try 
      { 
       // text is captured in a closure so you can manipulate it. 

       var length = text.Length; 

       // Do something else with text ... 
      } 
      catch (Exception ex) 
      { 
       // You probably want to handle this somehow. 
      } 
     } 
    ); 
} 
Смежные вопросы