- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
关于的功能和含义有什么区别
TaskCompletionSource + SetResult vs Task + FromResult
在 SendAsync 方法中?
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
var response = new HttpResponseMessage(HttpStatusCode.Forbidden) {ReasonPhrase = "HTTPS Required"};
var taskCompletionSource = new TaskCompletionSource<HttpResponseMessage>();
taskCompletionSource.SetResult(response);
return taskCompletionSource.Task;
}
return base.SendAsync(request, cancellationToken);
}
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (!request.RequestUri.Scheme.Equals(Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase))
{
HttpResponseMessage reply = request.CreateErrorResponse(HttpStatusCode.BadRequest, "HTTPS is required for security reason.");
return Task.FromResult(reply);
}
return base.SendAsync(request, cancellationToken);
}
最佳答案
Task.FromResult 是 .NET 4.5 中的新增功能。它是创建 TaskCompletionSource 并调用 SetResult 的辅助方法。如果您使用的是 .NET 4 或更早版本,则必须使用 SetResult。
关于c# - 任务 FromResult 与 TaskCompletionSource SetResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21256110/
在我的应用程序中,我在 list 文件中定义了 2 个 Activity ,如下所示: 在 MainActivity 中,我有 4 个 fragment 。在一个 fragment 中,我使用以下
使用 TaskCompletionSource.SetResult() 将在一个线程上创建的非线程安全对象传递给另一个线程是否安全? 例如在这个人为的例子中: using System; using
请注意:这里是 qt/c++ 新手 目的: 我有一个 QDialog,我想从中返回一个结果。我知道 QDialog::exec() 与 setResult 结合,导致使用 Accept() 或 Rej
这个问题在这里已经有了答案: Sending data back to the Main Activity in Android (13 个答案) 关闭 9 年前。 我创建了一个文件资源管理器和一个
我试图在我的“注册”按钮上设置结果,但没有任何反应: 登录 Activity : 为结果开始 Activity : Intent intent = RegisterActivity_.intent(t
我正在开发一个涉及两个 Activity 的测验应用程序:一个显示 Question 列表的 QuizActivity 和一个 QuestionActivity显示问题的详细信息(提示、选项等)。在
我已经使用 startActivityForResult 从父 Activity 开始了一个子 Activity 。在子 Activity 中执行所需的功能后,我使用 setResult 设置结果。但
我正在我的 Android 应用程序中实现 DeepLinking。假设我正在使用 PhonePe 付款并选择使用其他应用程序付款并选择我的应用程序。 Intent intent = new Inte
场景:我有一个 MainActivity.java、OtherPageForFragments.java 和一个位于 OtherPageForFragments.java 上的 fragment 在
我发现 TaskCompletionSource.SetResult(); 在返回之前调用等待任务的代码。就我而言,这会导致死锁。 这是在普通Thread中启动的简化版本 void ReceiverR
我有一个 Activity 保存 fragment (MainActivity.java) 在里面, fragment (ItemFragment.java) 有显示一些项目的 recyclervie
单击任何列表项时,我必须使用 setResult 转到父 Activity 。 list.setOnClickListener(new OnClickListener() {
我发起了一个电话 Activity 请求结果: Intent intentcall = new Intent(); intentcall.setAction(Intent.ACTION_CAL
我正在为 Android 创建一个基于 GPS 的应用程序,并且有 2 个 Activity Main 和 LocNames。 Main 显示我的 map ,LocNames 用于获取用户想要的来源和
好的,我又来了。还在学习。现在我需要在 2 个 Activity 中来回传递整数值。第一个 Activity 将计数器值传递给第二个 Activity (跟踪玩家统计数据)。第二个 Activity
在我的应用程序中,我需要启动 RecyclerAdapter.class 并等待结果,但我无法编写行 setResult 并完成: public static class MyViewHolder e
我有一个期望用户选择项目的 Activity ,但用户可以选择单击后退按钮而不选择项目。这个“项目选择” Activity 是从 startActivityForResult() 开始的。 我想知道两
在谷歌的 C2DM 示例代码中,当在 BroadcastReceiver 中收到通知时,他们调用: setResult(Activity.RESULT_OK, null/* data */, null
我有一个 Activity A - 它在 Viewpager 中包含 3 个 fragment 。 fragment 编号 1,是一个新闻文章列表,当用户从列表中选择一篇新闻文章时, Activity
最初我认为所有的延续都是在线程池上执行的(给定一个默认的同步上下文)。然而,当我使用 TaskCompletionSource 时,情况似乎并非如此。 我的代码看起来像这样: Task Foo() {
我是一名优秀的程序员,十分优秀!