【C#-等待来自其他类的任务】教程文章相关的互联网学习教程文章

c# – 使用.NET 4任务库在WPF中显示阻止消息框【代码】

我的WPF应用程序中有以下代码:Task task = Task.Factory.StartNew(() => {DoInitialProcess();});task.ContinueWith(t => Dispatcher.BeginInvoke((Action)(() => {MessageBox.Show("Error: " + t.Exception.InnerExceptions[0].Message);})), TaskContinuationOptions.OnlyOnFaulted);如果发生异常,它会成功触发延续并显示消息框,但它不会阻止主UI线程上的输入. 为什么不阻止主UI线程,最好的方法是什么呢?解决方法:通常,通常这样...

c# – 为什么不在ContinueWith中执行任务?【代码】

我有异步方法返回一个对象public static IEnumerable<Users.User> GetUsers(IEnumerable<string> uids, Field fields) {Task<ResponseApi<Users.User>>[] tasks;tasks = uids.Select(uid =>{var parameters = new NameValueCollection{{"uids", uid},{"fields", FieldsUtils.ConvertFieldsToString(fields)}};return GetUserResponseApi(parameters);}).ToArray();Task.WaitAll(tasks);foreach(Task<ResponseApi<Users.User>> task...

c# – 即使指定TaskContinuationOptions,任务延续也始终运行【代码】

我想在异步任务成功完成时运行一些代码. 通过阅读Web上的文档和示例,我想我可以使用Task.ContinueWith并指定TaskContinuationOptions.OnlyOnRanToCompletion. 但是,这并不像我预期的那样. 以下代码是在Visual Studio 2012中创建的控制台程序.Net 4.5:using System; using System.Threading.Tasks;namespace TaskContinueTest {class Program{static void Main(string[] args){var jobTask = Task.Factory.StartNew(() => { });job...

c# – 后台任务和写入隔离存储【代码】

我在后台任务中编写了隔离存储空间.这样做的原因是,在后台任务的每次运行中我都会下载数据,我需要在下次运行后台任务时比较这些数据.如果数据已更改,则会显示Toast通知. 问题是我写入隔离存储的数据没有保存.我可以在OnInvoke函数的其余部分中使用它,但是下次运行后台任务时,该值就消失了. 我在这里遗漏了什么,我觉得这很容易吗? 编辑:读取值工作正常,从我的主应用程序写入值也可以正常工作我在OnInvoke函数中使用的代码是这样的...

如何通过c#返回任务>?【代码】

我目前正在使用VS2012和.NET 4.5进行async和await的第一步. 为此,我正在实现一个具有以下签名的方法:public Task<List<string>> foo() {...}我知道如何返回List但我不知道如何将此列表放入Task<>中.怎么做? 编辑:这是完整的例子,我需要知道我需要改变什么来使return语句成为可能public async Task<List<string>> foo() {List<string> myList = new List<string>;{...}return mylist; }解决方法:如果您的方法实际上是异步的,您只...

C#Excel interop – 如何测试互操作对象是否仍在工作并执行任务?【代码】

我循环遍历几个Huncel excel文件的目录,并尝试一次刷新一个excel文件.我不断收到此错误,表示刷新操作仍在文件A上运行,例如,FileB正在尝试启动刷新操作.循环是快速的,不知怎的,我必须等待文件A上的先前刷新操作完成,然后才开始刷新文件B.Unhandled Exception: System.Runtime.InteropServices.COMException: Themessage filter indicated that the application is busy. (Exception fromHRESULT: 0x8001010A (RPC_E_SERVERCALL_RETR...

c# – 从客户端通过WCF取消长时间运行的任务【代码】

我有一个设置为PerCall的WCF服务 我想知道如何从客户端发送一个Start调用以启动一个长时间运行的进程,并发送一个Cancel命令来取消它 我的WCF服务看起来像这样[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]public class Service1 : IService1{CancellationTokenSource cancelToken = new CancellationTokenSource();public void Start(){var compute = Task.Factory.StartNew(StartLongRunningTask, cance...

c# – 使用任务计划程序托管包装程序的计划任务【代码】

在过去的几天里,我已经做了很多关于检查是否存在计划任务的搜索,如果是这样的话<在这里插入awesome>.基本上我有一个安装和卸载我们软件的计划任务的应用程序.我现在需要做的是,如果任务在那里,则选中一个复选框,如果不是,则取消选中.有人提到使用:ScheduledTasks st = new ScheduledTasks(server);string[] taskNames = st.GetTaskNames();List<string> jobs = new List<string>(taskNames);这对我不起作用,它表明无法找到Schedul...

来自C#任务的通用回调【代码】

从异步任务调用通用回调的推荐方法是什么?例如,进度,异常处理和完成(但可能是其他状态). 下面的代码显示了实现它的一种方法,但感觉应该有一种更清晰的方法来处理它. (FWIW我已经看到很多使用ContinueWith作为完成回调的例子,但这并不真正处理其他情况,如进度和异常处理).using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks;namespace...

c#实现定时任务(Timer)【代码】

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Runtime.InteropServices;namespace AutoCreateTaskApp {class Program{[DllImport("user32.dll")]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);public const int SW_SHOWMINIMIZED = 2;public const int SW_HIDE=0;static IntPtr winHandle = System.Diagnostics.Process.Ge...

如何使用Winform C#4.5在任务栏中显示进度【代码】

编辑:我不希望它更新,更改或消失.我只希望任务栏达到40%才能启动程序,保持这种状态直到它关闭. 我花了很多时间尝试了许多例子……但没有运气. 为了简单起见,如何在Error颜色中显示40%? 此代码运行但在屏幕上不执行任何操作,没有错误,只需运行:public TaskbarItemInfo taskBar = new TaskbarItemInfo();那么在一个方法中:taskBar.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Error; taskBar.ProgressValu...

如何并行运行任务并选择满足C#中给定条件的第一个结果?【代码】

参见英文答案 > TPL wait for task to complete with a specific return value 2个我希望并行运行三个任务.我希望检查完成的第一个任务的结果,并检查以确定结果是否良好.如果是,我取消所有其他任务并返回此结果,如果没有,我将等待下一个完成的任务,并检查是否良好,如果是,则执行相同操作. (想想在OutputDataType的成员上做一些简单的检查). 我继续这个,直到我获得一个结果良好的完成任务,或者所...

c# – 单元测试和多个异步任务【代码】

我正在创建单元测试以帮助构建一些代码,这些代码将接受并排队(如果需要)来自我的控制器的入站请求. 在我的单元测试中,我希望同时启动两行代码,尽管调用之间有2秒的延迟.这允许我的逻辑的第一个分支被触发,然后在第二次调用时,因为已经看到传递的数据使用逻辑的备用分支. 我已经走近了,但感觉很乱.我正在使用以下内容立即关闭我的第一个调用,然后转到后续的代码行.Task.Factory.StartNew(() => stubbedQueueHandler.QueueProcessor(...

c# – 节流异步任务?【代码】

我想知道如果要完成的任务数量很大,我们是否应该限制异步任务.假设您有1000个URL,您是否一次触发所有请求并等待所有请求:var tasks = urlList.Select(url => downloadAsync(url)); await Task.WhenAll(tasks);或者您批量处理请求并逐个处理:foreach (var urlBatch in urlList.BatchEnumerable(BatchSize)){var tasks = urlBatch.Select(url => downloadAsync(url));await Task.WhenAll(tasks); }我认为批处理不是必需的,因为第一...

c# – 生成资源任务失败错误

从我所看到的这个错误来看,它们都略有不同 在今天之前,我的代码运行良好. (Visual Studio 2015) 我得到的错误如下所示Severity Code Description Project File Line Error The“GenerateResource” task failed unexpectedly.System.NullReferenceException: Object reference not set to an instanceof an object. atMicrosoft.Build.Tasks.ResGenDependencies.GetResXFileInfo(StringresxFile) atMicrosoft.Bu...