标签: asynchronous

POSIX异步I/O(AIO)的状态是什么?

网页上散布着各种描述POSIX AIO设施的页面,其中包含不同的细节.它们都不是最近的.目前还不清楚他们究竟在描述什么.例如,Linux内核异步I/O支持的"官方"(?)网站说套接字不起作用,但我的Ubuntu 8.04.1工作站上的"aio.h"手册页似乎都暗示它适用于任意文件描述符.然后还有另一个项目似乎在图书馆层工作,文档更少.

我想知道:

  • POSIX AIO的目的是什么?鉴于我能找到的最明显的实现示例说它不支持套接字,整个事情对我来说似乎很奇怪.它只适用于异步磁盘I/O吗?如果是这样,为什么超通用API?如果没有,为什么磁盘I/O首先受到攻击?
  • 哪些示例完整的 POSIX AIO程序我可以看一下?
  • 有没有人真正使用它,真的吗?
  • 哪些平台支持POSIX AIO?他们支持哪些部分?有没有人真的支持隐含的"对任何FD的任何I/O" <aio.h>似乎有希望?

我可以使用的其他多路复用机制非常好,但随处可见的信息碎片让我很好奇.

linux bsd posix asynchronous aio

92
推荐指数
3
解决办法
2万
查看次数

我怎么能等待一组异步回调函数?

我的代码在javascript中看起来像这样:

forloop {
    //async call, returns an array to its callback
}
Run Code Online (Sandbox Code Playgroud)

在完成所有这些异步调用之后,我想计算所有数组的最小值.

我怎么能等他们全部?

我现在唯一的想法就是有一个名为done的布尔数组,并在第i个回调函数中将done [i]设置为true,然后说while(并非所有都已完成){}

编辑:我想一个可能的,但丑陋的解决方案,就是在每个回调中编辑完成数组,然后如果从每个回调设置所有其他完成后调用一个方法,那么最后一个回调完成将调用continue方法.

提前致谢.

javascript asynchronous

92
推荐指数
5
解决办法
10万
查看次数

如何从角度中的Observable/http/async调用返回响应?

我有一个服务,它返回一个observable,它向我的服务器发送一个http请求并获取数据.我想使用这些数据,但我总是得到undefined.有什么问题?

服务:

@Injectable()
export class EventService {

  constructor(private http: Http) { }

  getEventList(): Observable<any>{
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });

    return this.http.get("http://localhost:9999/events/get", options)
                .map((res)=> res.json())
                .catch((err)=> err)
  }
}
Run Code Online (Sandbox Code Playgroud)

零件:

@Component({...})
export class EventComponent {

  myEvents: any;

  constructor( private es: EventService ) { }

  ngOnInit(){
    this.es.getEventList()
        .subscribe((response)=>{
            this.myEvents = response;
        });

    console.log(this.myEvents); //This prints undefined!
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous observable typescript angular

92
推荐指数
3
解决办法
2万
查看次数

node.js的console.log异步?

console.log/debug/warn/error在node.js中-异步?我的意思是javascript代码执行停止,直到东西打印在屏幕上或将在稍后阶段打印?

此外,我有兴趣知道如果它后面的语句崩溃节点,console.log是否可能不显示任何内容.

console asynchronous node.js

90
推荐指数
3
解决办法
4万
查看次数

Nodejs与SignalR:为什么我们需要服务器端的JavaScript?

既然我已经了解了Node.js,我一直都是它的粉丝.但今天我发现了SignalR,它为ASP.NET提供了另一种异步 - 可扩展 - 实时模型.

据我所知,在的Node.js的SignalR的主要优点是客户机 - 服务器之间共享代码(另一个优势应该在于它是跨平台),和SignalR的主要优势是一个更加成熟的框架和更好工具(IDE)支持.所以我想知道:如果SignalR在这里,我们是否还需要Windows上的Node.js?我不知道Node.js有什么优点吗?

asp.net asynchronous node.js signalr

90
推荐指数
1
解决办法
4万
查看次数

当NSOperationQueue完成所有任务时获取通知

NSOperationQueuewaitUntilAllOperationsAreFinished,但我不想同步等待它.我只想在队列完成时隐藏UI中的进度指示器.

实现这一目标的最佳方法是什么?

我不能发送来自我NSOperation的通知,因为我不知道哪一个会是最后一个,并且[queue operations]在收到通知时可能不会是空的(或者更糟糕的是 - 重新填充).

iphone queue notifications asynchronous nsoperation

89
推荐指数
6
解决办法
5万
查看次数

为什么.json()会返回一个承诺?

我最近一直在搞乱fetch()api,并注意到一些有点古怪的东西.

let url = "http://jsonplaceholder.typicode.com/posts/6";

let iterator = fetch(url);

iterator
  .then(response => {
      return {
          data: response.json(),
          status: response.status
      }
  })
  .then(post => document.write(post.data));
;
Run Code Online (Sandbox Code Playgroud)

post.data返回一个promise对象. http://jsbin.com/wofulo/2/edit?js,output

但是如果写成:

let url = "http://jsonplaceholder.typicode.com/posts/6";

let iterator = fetch(url);

iterator
  .then(response => response.json())
  .then(post => document.write(post.title));
;
Run Code Online (Sandbox Code Playgroud)

post这里是一个标准对象,您可以访问title属性. http://jsbin.com/wofulo/edit?js,output

所以我的问题是:为什么response.json在对象文字中返回一个promise,但是如果刚刚返回则返回值?

javascript asynchronous promise fetch-api

89
推荐指数
4
解决办法
7万
查看次数

使用SqlCommand Async方法时性能很差

使用异步调用时,我遇到了严重的SQL性能问题.我创建了一个小案例来证明这个问题.

我在SQL Server 2016上创建了一个数据库,它驻留在我们的LAN中(因此不是localDB).

在该数据库中,我有一个WorkingCopy包含2列的表:

Id (nvarchar(255, PK))
Value (nvarchar(max))
Run Code Online (Sandbox Code Playgroud)

DDL

CREATE TABLE [dbo].[Workingcopy]
(
    [Id] [nvarchar](255) NOT NULL, 
    [Value] [nvarchar](max) NULL, 

    CONSTRAINT [PK_Workingcopy] 
        PRIMARY KEY CLUSTERED ([Id] ASC)
                    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                          IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
                          ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

在该表中,我插入了一条记录(id='PerfUnitTest',Value是一个1.5mb的字符串(一个较大的JSON数据集的zip)).

现在,如果我在SSMS中执行查询:

SELECT [Value] 
FROM [Workingcopy] 
WHERE id = 'perfunittest'
Run Code Online (Sandbox Code Playgroud)

我立即得到结果,我在SQL Servre Profiler中看到执行时间大约是20毫秒.一切正常.

使用plain从.NET(4.6)代码执行查询时SqlConnection:

// at this point, the connection …
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server asynchronous async-await

89
推荐指数
1
解决办法
8869
查看次数

在HttpClient中使用await的异步调用永远不会返回

我正在C#Win8 CP上基于xaml的metro应用程序内部进行调用; 此调用只是命中一个Web服务并返回JSON数据.

HttpMessageHandler handler = new HttpClientHandler();

HttpClient httpClient = new HttpClient(handler);
httpClient.BaseAddress = new Uri("http://192.168.1.101/api/");

var result = await httpClient.GetStreamAsync("weeklyplan");
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(WeeklyPlanData[]));
return (WeeklyPlanData[])ser.ReadObject(result);
Run Code Online (Sandbox Code Playgroud)

它挂起,awaithttp呼叫几乎立即返回(通过提琴手确认); 就好像await被忽略了它只是挂在那里.

在您询问之前 - 是 - 打开了专用网络功能.

任何想法为什么会挂起?

c# asynchronous async-await dotnet-httpclient

88
推荐指数
2
解决办法
5万
查看次数

抑制警告CS1998:这种异步方法缺少"等待"

我有一个带有一些异步功能的接口.实现该接口的一些类没有任何东西需要等待,有些可能只是抛出.所有警告都有点烦人.

不在异步函数中使用await时.

是否有可能压制消息?

public async Task<object> test()
{
    throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)

警告CS1998:此异步方法缺少'await'运算符并将同步运行.考虑使用'await'运算符等待非阻塞API调用,或'await Task.Run(...)'在后台线程上执行CPU绑定工作.

asynchronous

88
推荐指数
7
解决办法
5万
查看次数