When working with Task Schedule Service you might get following exception when invoking BeginDeletTask:
ArgumentException: Value Cannot be null.
This exception is thrown by executing of following code:
protected void Button2_Click(object sender, EventArgs e) { DistributedTask task = getTask(); TaskSchedulerClient client = ServiceReferences.CreateImport1("Tasks"); IAsyncResult asyncResult = client.BeginDeleteTask(task, cb => { }, null);
client.EndDeleteTask(asyncResult); }
private DistributedTask getTask() { TaskSchedulerClient client = ServiceReferences.CreateImport1("Tasks"); IAsyncResult asyncResultAllTasks = client.BeginGetAllTasks(cb => { Debug.WriteLine(""); }, null);
ReadOnlyCollection<DistributedTask> tasks = client.EndGetAllTasks(asyncResultAllTasks); return tasks.Count > 0 ? tasks[0] : null; } |
To workaround this issue, insert the yellow line in the code which stops distributed the task.:
protected void Button2_Click(object sender, EventArgs e) { DistributedTask task = getTask(); TaskSchedulerClient client = ServiceReferences.CreateImport1("Tasks"); task.SelfLink = new Uri(client.EndpointAddress.AbsoluteUri); IAsyncResult asyncResult = client.BeginDeleteTask(task, cb => { }, null); client.EndDeleteTask(asyncResult);
}
|
Posted
Sep 03 2011, 04:27 PM
by
Damir Dobric