Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > return из потока


Автор: Machaon 24.1.2012, 02:33
Код

public static ArrayList Start(string Path)
       {
           if (thrGetFileList != null && thrGetFileList.ThreadState == ThreadState.Running)
           {
            MessageBox.Show("Поток уже запущен!");
           }
           else
           {
               thrGetFileList = new Thread(delegate() { GetFileList(Path); });            
               thrGetFileList.Start();
 return = что-то нужно придумать чтобы функция из потока могла возвратить данные;
Код

           }
       }

 private static ArrayList GetFileList(string Path)
        {
               /* Тело функции*/
    
             return FileList;
         }
  
Не могу разобраться как от функции запущенной в потоке с помощью return получить возвращаемое значение?
Не в потоке все нормально а вот в нём.... =(


Автор: azesmcar 24.1.2012, 08:59
Используй http://msdn.microsoft.com/ru-ru/library/system.threading.tasks.task.aspx.

Автор: Competitor 27.1.2012, 10:17
Из потока можно получить данные через общие поля класса. Разумеется, нужно только сделать синхронизацию на доступ к этим полям. Например, через lock.

Автор: Machaon 29.1.2012, 20:42
Спасибо разобрался.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)