Некоторое время назад я столкнулся с задачей, описанной ниже, проект использовал .net 4.0, и теперь я задаюсь вопросом, будет ли хорошо использовать async-await в такой ситуации, если есть такая возможность (метод запускаетсяПо делегату следует скачивать много файлов).Я читал разные статьи, чтобы прояснить свое любопытство, но не уверен, что у меня неправильные мысли.
public static void StartBackgroundThread(ParameterizedThreadStart
threadstart, string name = "", object parameter = null)
{
if (ConcQueue.Count == 0)
{
ConcQueue.Enqueue(threadstart);
}
else
{
foreach (var element in ConcQueue)
{
if (element.Method.Name == threadstart.Method.Name)
{
return;
}
}
}
if (!HasBackgroundThread)
{
HasBackgroundThread = true;
try
{
ParameterizedThreadStart result;
ConcQueue.TryDequeue(out result);
_backgroundThread = new Thread(result) { Name = name };
_backgroundThread.Start(parameter);
}
catch (Exception)
{
throw;
}
}
}
как бы вы реорганизовали этот кусок кода с точки зрения потоков \ асинхронности?а ты бы?и лучше ли использовать async-await или threads?