例如,下面的示例
async function a() { await null; }
在VS代码中有一个关于等待的小警告
'await' has no effect on the type of this expression. ts(80007)
如何使警告行为类似于VS代码和tsc中错误(更明显,编译失败)?
我有以下使用asyc方法的简单C#代码片段:
class SUT
{
public async Task<int> GetValue()
{
await Task.Delay(1000);
return 42;
}
}
class Program
{
static async Task<int> CallAsync()
{
SUT sut = new SUT();
int result = await sut.GetValue();
return r
我使用来提出请求。目前,我有以下代码,一切都很好:
public class Request()
{
public async Task<Bitmap> GetImage(string url)
{
using (var client = new Url(url)
{
var content = await client.GetStringAsync();
//return as image
}
}
}
在主UI线程上,我这样做:
public async voi
使用微软的async CTP for .NET,是否有可能在调用方法中捕获异步方法抛出的异常?
public async void Foo()
{
var x = await DoSomethingAsync();
/* Handle the result, but sometimes an exception might be thrown.
For example, DoSomethingAsync gets data from the network
and the data is invalid... a ProtocolException
我在Edit get方法中有以下代码。
public async Task<ActionResult> Edit(int? id)
{
Event e = await db.Events.FindAsync(id);
ViewBag.OldCategories = e.Categories.ToList();
// ViewBag.OldCategories is not null (tested in VS quick viewer)
我在post方法中有以下代码。
[HttpPost]
[ValidateAntiForgeryToken]
public
我已经被这个问题困扰了一段时间,并没有真正找到任何有用的解释来解释为什么会这样。
如果我有一个像这样的async方法:
public async Task<bool> MyMethod()
{
// Some logic
return true;
}
public async void MyMethod2()
{
var status = MyMethod(); // Visual studio green lines this and recommends using await
}
如果我在这里使用await,异步方法的意义是什么?VS告诉我调用awa
我正在编写一个包装第三方web服务调用的库,并试图使该库使用新的async/await功能。以下示例中async/await关键字的正确用法是什么?
public class MyApi
{
public Task<ApiResult> DoSomethingAsync()
{
return this.DoSomethingCore();
}
public async Task<ApiResult> DoSomethingElseAsync()
{
return await this.DoSome
现在我知道我可能做错了什么,因为我对async/await还很陌生。但是我有一个随机的问题,我不能通过。
我正在调用Google Places API (成功)并获得结果。
Response results = await Api.SearchPlaces(lat, lon, "");
结果填充了20个位置的响应,这是很棒的。然后,我尝试遍历它们,并将它们添加到位置列表中。
var places = new List<Place>();
foreach (var place in results.Places)
{
places.Add(p
我想询问您对何时使用Task.Run的正确架构的看法。在我们的WPF .NET 4.5应用程序中,我正在经历一个滞后的UI (与卡利伯恩微框架)。
基本上,我正在做(非常简化的代码片段):
public class PageViewModel : IHandle<SomeMessage>
{
...
public async void Handle(SomeMessage message)
{
ShowLoadingAnimation();
// Makes UI very laggy, but still not dead
我一整天都在翻阅MSDN文档,他们的异步编码哲学让我感到困惑。据我所知,如果调用async方法,调用async方法的线程将不会被阻塞。然而,在示例中,async总是与await配对,这似乎否定了异步,使得外部方法无论如何都必须等待代码执行。难道我不能调用异步方法,然后继续执行外部方法吗?
这就是我遇到的情况,或多或少:
void reportSomethingHappened(info)
- Collect info
- HTTP POST info to logging server (ie. mixpanel, sentry)
下面是一个调用方法:
void largerP
我在将这个方法从c#转换到VB时遇到了一些问题,它在C#中工作得很完美:
private async void Test()
{
DataSet dt;
var client = new xxxSoapClient();
dt = await client.ToDoAsync();
}
我在VS2012中使用Async/await,在c#中一切正常,但在VB中尝试做完全相同的事情时,它会返回一个错误,指示system.void不可等待!
Private Async Sub Test()
Dim dt As Dat
我创建了一个类,它有一个“has”方法。这个类与允诺类型无关;“然后”方法有不同的用途,不返回允诺。我试图在类型记录2.1.4中编写一个异步/等待函数,该函数等待并返回该类的一个实例,但是VS代码中的类型记录服务器给了我错误。如果我将该方法重命名为“然后”以外的其他内容,那么错误就会消失。
带有错误的示例代码:
class MyClass {
then(): number {
// this method isn't related to Promise.then
return 2 + 2;
}
}
// three errors be
我怎样才能从下面的异步方法中检索帖子?因为VS给出的错误是“等待运算符只能在异步方法中使用”
class HomePage
{
HttpClient httpClient = new HttpClient();
List<Post> x = await GetTodoItemsAsync();
public async Task<List<Post>> GetTodoItemsAsync()
{
var response = await httpClient.GetStringAsync("http: