.NET 4.x WebBrowser в Task - C#
Формулировка задачи:
Не могу создать объект WebBrowser в Task'e, поскольку он требует STA, который Task, насколько я понял, не поддерживает. Вообще возможно работать с этим классом в задаче?
Решение задачи: «.NET 4.x WebBrowser в Task»
textual
Листинг программы
public static Task<T> StartSTATask<T>(Func<T> func)
{
var tcs = new TaskCompletionSource<T>();
Thread thread = new Thread(() =>
{
try
{
tcs.SetResult(func());
}
catch (Exception e)
{
tcs.SetException(e);
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
return tcs.Task;
}