当前位置: 首页>>代码示例>>C#>>正文


C# TaskResult.With方法代码示例

本文整理汇总了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;
            }
开发者ID:noahstein,项目名称:roslyn,代码行数:30,代码来源:InteractiveHost.Service.cs

示例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);
            }
开发者ID:noahstein,项目名称:roslyn,代码行数:30,代码来源:InteractiveHost.Service.cs


注:本文中的TaskResult.With方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。