客户端调用wcf服务,如何提高调用性能
2024-09-23 10:09:16
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客户端调用的办法吗?
最新文章
- Servlet开发详解
- Python-基础-时间日期处理小结
- 蓝牙 BLE GATT 剖析(二)-- GATT UUID and 举例
- C#中求数组的子数组之和的最大值
- iOS之GCDAsyncSocket第三方库的使用
- 线程 (detach的作用)
- 欢迎来到Devil_lixu的技术博客
- /etc/profile /etc/bashrc ~/.bash_profile ~/.bashrc ~/.bash_logout 说明及区别
- iOS动画学习 -隐式动画
- Selenium_WebDriver_定位元素
- 如何在Google上下载高清原图
- 使用redis有序集合sorted set设计高效查询ip所在地
- linux下tomcat启动很慢的解决办法
- mysql之用户管理
- CC2541之串口调试PM2.5传感器
- java框架之SpringBoot(7)-异常处理
- ABAP-表中数据的横向累加
- Twain
- [转]web高级开发的成长之路
- 蓝桥杯—ALGO-122 未名湖畔的烦恼(枚举)
热门文章
- 使用 Git Hook 自动部署 Hexo 到个人 VPS
- webpack+angular2开发环境搭建
- 国内maven库镜像(阿里云)
- 雷林鹏分享:Ruby 范围(Range)
- appium+pytest+allure+jenkins 如何实现多台手机连接
- python运行错误---TabError: Inconsistent use of tabs and spaces in indentation
- JavaScript---详解scroll
- vim按下ctrl+s僵死
- JS之replace
- fatal error: openssl/evp.h: 没有那个文件或目录