本文整理汇总了C#中TaskResult.With方法的典型用法代码示例。如果您正苦于以下问题:C# TaskResult.With方法的具体用法?C# TaskResult.With怎么用?C# TaskResult.With使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TaskResult
的用法示例。
在下文中一共展示了TaskResult.With方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteOnUIThread
private async Task<ExecuteResult> ExecuteOnUIThread(TaskResult result, Script<object> script)
{
var executeResult = await Task.Factory.StartNew(async () =>
{
try
{
var state = result.State;
var globals = state ?? (object)_hostObject;
state = script.RunAsync(globals, CancellationToken.None);
var value = await state.ReturnValue.ConfigureAwait(false);
return new ExecuteResult(result.With(state), value, null, true);
}
catch (Exception e)
{
return new ExecuteResult(result, null, e, false);
}
},
CancellationToken.None,
TaskCreationOptions.None,
s_UIThreadScheduler).Unwrap().ConfigureAwait(false);
var exception = executeResult.Exception;
if (exception != null)
{
// TODO (tomat): format exception
Console.Error.WriteLine(exception);
}
return executeResult;
}
示例2: CompleteExecution
private TaskResult CompleteExecution(TaskResult result, RemoteAsyncOperation<RemoteExecutionResult> operation, bool success, string resolvedPath = null)
{
// TODO (tomat): we should be resetting this info just before the execution to ensure that the services see the same
// as the next execution.
// send any updates to the host object and current directory back to the client:
var options = result.Options;
var newSourcePaths = _hostObject.SourcePaths.List.GetNewContent();
var newReferencePaths = _hostObject.ReferencePaths.List.GetNewContent();
var currentDirectory = Directory.GetCurrentDirectory();
var oldWorkingDirectory = options.BaseDirectory;
var newWorkingDirectory = (oldWorkingDirectory != currentDirectory) ? currentDirectory : null;
// update local search paths, the client updates theirs on operation completion:
if (newSourcePaths != null)
{
_sourceSearchPaths = newSourcePaths.AsImmutable();
}
if (newReferencePaths != null)
{
options = options.WithSearchPaths(newReferencePaths);
}
options = options.WithBaseDirectory(currentDirectory);
operation.Completed(new RemoteExecutionResult(success, newSourcePaths, newReferencePaths, newWorkingDirectory, resolvedPath));
return result.With(options);
}