【发布时间】:2016-04-12 01:04:47
【问题描述】:
我希望 PrintOrderAsync 方法执行外部 EXE 以打印订单。 方法 PrintOrderAsync 的代码没有显示任何语法错误
public async Task<string> PrintOrderAsync(string PrintExe, string ExePath, int nOrderNo)
{
await Task.Factory.StartNew(() => Process.Start(ExePath + PrintExe, nOrderNo.ToString()));
return "";
}
但我正在为调用方法的语法而苦苦挣扎。这是我尝试过的:
Task<string> result = PrintOrderAsync(PrintExe, ExePath, nOrderNo);
我在上面的行中看到了语法错误。我错过了什么?
【问题讨论】:
-
你为什么会选择使用
StartNew?你在某处看到过这个例子吗? -
@StephenCleary 是的,我确实在某处看到了这个。但我在听,如果您认为代码应该更好地适应更改,请告诉我。
-
@StephenCleary 既然您提出了这个问题,我想看看如何使用 StartNew 更改/优化该行,但无法弄清楚这一点。显然你发现我的语法有问题,所以我需要学习如何让它更好地工作。
-
@Hidalgo,您真的对
Process.Start的即发即弃语义感到满意吗?您没有在返回的Process实例上调用WaitForExit的任何特殊原因? -
使用TaskCompletionSource查看this问题中的答案以获得更好的实施
标签: asp.net asynchronous async-await