- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试为任务设置公寓状态,但看不到执行此操作的选项。有没有办法使用任务来做到这一点?
for (int i = 0; i < zom.Count; i++)
{
Task t = Task.Factory.StartNew(zom[i].Process);
t.Wait();
}
最佳答案
当 StartNew
失败时,您只需自己动手:
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;
}
(您可以为 Task
创建一个看起来几乎相同的,或者为 StartNew
具有的一些不同选项添加重载。)
关于c# - 在任务上设置 ApartmentState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16720496/
我在 C# 中有以下代码: namespace Tests { [SetUpFixture, RequiresSTA] public class Setup {
我正在从 C# Windows 服务调用 WatiN。当我调用 WatiN 时,它抛出以下异常。 CurrentThread 需要将其 ApartmentState 设置为 ApartmentStat
我刚刚使用此方法纠正了一个错误: _Thread.SetApartmentState(ApartmentState.STA); 现在我想了解它的含义以及它为何有效! 最佳答案 COM 是 .NET 的
我正在尝试为任务设置公寓状态,但看不到执行此操作的选项。有没有办法使用任务来做到这一点? for (int i = 0; i StartSTATask(Func func) { var tc
我正在 PowerShell 中处理 GUI,当单击某些组合框时我会抛出错误。 抛出错误后,我可以放下组合框列表并查看其内容,但是如果我切换到同一个 datagridview 上的另一个组合框,我会在
我试图让 Watin 在我的 SSIS 脚本任务中工作,通过在新线程中打开 IE 来执行一些自动化操作,做一些事情,找到最终值并基本上在父线程中返回/设置该值。 所以我现在有这个: public pa
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我有一个 Windows 窗体应用程序。 现在我想使用一个async方法。 从 C# 7.1 开始,我可以使用 async Main 方法: https://learn.microsoft.com/e
我是一名优秀的程序员,十分优秀!