IO调用服务

1、使用using(每次自动释放)

  for (var i = ; i < ; i++)
{
var watch = new Stopwatch();
watch.Start();
using (var client = new StreamServiceClient())
{
var result = client.Upload(new StreamRequest
{
Bytes = data,
FileExt = ext,
Passport = ""
});
if (!string.IsNullOrEmpty(result.Msg))
MessageBox.Show(result.Msg);
}
watch.Stop();
this.richTextBox1.AppendText(string.Format("第{0}次:耗时:{1}\r\n\r\n", i, watch.ElapsedMilliseconds));
}

耗时:

2、重用wcf通信通道

for (var i = ; i < ; i++)
{
var watch = new Stopwatch();
watch.Start();
var client = new StreamServiceClient();
{
var result = client.Upload(new StreamRequest
{
Bytes = data,
FileExt = ext,
Passport = ""
});
if (!string.IsNullOrEmpty(result.Msg))
MessageBox.Show(result.Msg);
}
watch.Stop();
this.richTextBox1.AppendText(string.Format("第{0}次:耗时:{1}\r\n\r\n", i, watch.ElapsedMilliseconds));
}

耗时:

3、自定义wcf通道

先创建一个channel,如下:

/// <summary>
/// IO服务通道
/// by:jgl
/// date:15-10-10
/// </summary>
public sealed class EmpIOChannelFacotry
{
private static readonly object LockObject = new object();
private static StreamServiceClient client; public static StreamServiceClient Channel
{
get
{
lock (LockObject)
{
var locaClient = client;
if (locaClient != null && locaClient.State != CommunicationState.Faulted) return locaClient;
client = new StreamServiceClient();
return client;
}
}
set
{
lock (LockObject)
{
if (client == null) return;
if (client.State != CommunicationState.Opened)
client.Abort();
client.Close();
client = value;
}
}
}
}

耗时:

此文章属于个人记录,我是wcf的菜鸟,希望大家多多批评与指点。

请问各位还有其他办法能够提供wcf客户端调用的办法吗?

最新文章

  1. Servlet开发详解
  2. Python-基础-时间日期处理小结
  3. 蓝牙 BLE GATT 剖析(二)-- GATT UUID and 举例
  4. C#中求数组的子数组之和的最大值
  5. iOS之GCDAsyncSocket第三方库的使用
  6. 线程 (detach的作用)
  7. 欢迎来到Devil_lixu的技术博客
  8. /etc/profile /etc/bashrc ~/.bash_profile ~/.bashrc ~/.bash_logout 说明及区别
  9. iOS动画学习 -隐式动画
  10. Selenium_WebDriver_定位元素
  11. 如何在Google上下载高清原图
  12. 使用redis有序集合sorted set设计高效查询ip所在地
  13. linux下tomcat启动很慢的解决办法
  14. mysql之用户管理
  15. CC2541之串口调试PM2.5传感器
  16. java框架之SpringBoot(7)-异常处理
  17. ABAP-表中数据的横向累加
  18. Twain
  19. [转]web高级开发的成长之路
  20. 蓝桥杯—ALGO-122 未名湖畔的烦恼(枚举)

热门文章

  1. 使用 Git Hook 自动部署 Hexo 到个人 VPS
  2. webpack+angular2开发环境搭建
  3. 国内maven库镜像(阿里云)
  4. 雷林鹏分享:Ruby 范围(Range)
  5. appium+pytest+allure+jenkins 如何实现多台手机连接
  6. python运行错误---TabError: Inconsistent use of tabs and spaces in indentation
  7. JavaScript---详解scroll
  8. vim按下ctrl+s僵死
  9. JS之replace
  10. fatal error: openssl/evp.h: 没有那个文件或目录