我有一个.NET WCF服务,需要一次处理多个客户端请求。
该服务为每个客户端请求进行数据库调用(包括读取和写入)。
IO完成端口是否可用于此代码的数据库访问部分以提高并发性能?他们将如何在这种情况下使用?
答案 0 :(得分:2)
ADO.NET 2.0支持内部使用IO完成端口的异步命令执行。 (BeginXXX和EndXXX方法)
查看http://msdn.microsoft.com/en-us/library/ms379553(VS.80).aspx
答案 1 :(得分:0)
这取决于您如何进行数据库读写操作。如果您正在使用某种直接套接字或文件输入/输出调用,那么您可以增加可以同时服务的呼叫数量。但是,实际执行数据库读/写操作的时间取决于服务器。
但您很可能是通过ODBC / OLEDB / ADO / ADO.NET访问数据库,在这种情况下,这些库不使用IO完成端口。而且你不能让他们使用IO完成端口。
IO完成端口用于防止线程在等待IO完成时阻塞。可以把它想象成异步读/写。