Простейшая обработка символьных данных в двух потоках - C#

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

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

Добрый день! Неделю назад знакомая девушка попросила задание сделать на C#. Сам то я его не знаю, пишу на С/С++, но отказывать неудобно было. Сегодняшняя ночь - уже дедлайн, а я никак не могу разобрать одну проблему. Само по себе задание - элементарное: необходимо произвести простейшую обработку символьных данных, в двух потоках. Для каждого потока должны быть кнопки запуска, паузы, остановки. Средство создания потоков - обязательно ThreadPool. Так вот, никак не могу проконтроллировать потоки созданные через QueueUserWorkItem. Никаких объектов, как при обычном Thread эта функция не возвращает. Т.е. управлять по сути нечем. Когда запускаю через нее поток, все остальное словно приостанавливается. Элементы визуально работают нормально, но события назначенные им не выполняются. Это вообще реально с QueueUserWorkItem, или преподаватели просто лоханулись? Заранее спасибо!

Решение задачи: «Простейшая обработка символьных данных в двух потоках»

textual
Листинг программы
private List<Thread> Threads = new List<Thread>();
private object sync = new object();
private void Example()
{
    ThreadPool.QueueUserWorkItem(Handler, a);
}
 
private void Handler(object a)
{
    lock(sync)
    {
        Threads.Add(System.Threading.Thread.CurrentThread);
    }
    //TODO: Do work
    lock(sync)
    {
        Threads.Remove(System.Threading.Thread.CurrentThread);
    }
}

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


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

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

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