没有合适的资源?快使用搜索试试~ 我知道了~
c# 如何实现不同进程之间的通信
5星 · 超过95%的资源 12 下载量 99 浏览量
2020-12-16
20:02:00
上传
评论
收藏 86KB PDF 举报
温馨提示
试读
3页
进程之间的通信是为了解决不同进程之间的数据传输问题,这样可以让不同程序交互数据。实现进程通信的方式:1、剪切板;2、COM;3、内存映射文件;4、WCF 1、剪切板Clipboard在进程间传送对象 剪切板是一个供应用程序使用的公有区域。在.NET中定一个了一个DataFormats类,此类包含一些静态字段,定义了剪切板中可以存放的数据类型。使用Clipboard类可以向剪切板中放入数据。 如将文字放入剪切板,使用方法SetDataObject即可:Clipboard.SetDataObject(“剪切板文字2”); 在读取的时候,先判断剪切板中是否有文字,然后再读取: IDataO
资源详情
资源评论
资源推荐
c# 如何实现不同进程之间的通信如何实现不同进程之间的通信
进程之间的通信是为了解决不同进程之间的数据传输问题,这样可以让不同程序交互数据。实现进程通信的方式:1、剪
切板;2、COM;3、内存映射文件;4、WCF
1、剪切板、剪切板Clipboard在进程间传送对象在进程间传送对象
剪切板是一个供应用程序使用的公有区域。在.NET中定一个了一个DataFormats类,此类包含一些静态字段,定义了剪切
板中可以存放的数据类型。使用Clipboard类可以向剪切板中放入数据。
如将文字放入剪切板,使用方法SetDataObject即可:Clipboard.SetDataObject(“剪切板文字2”); 在读取的时候,先判断剪
切板中是否有文字,然后再读取:
IDataObject data = Clipboard.GetDataObject();
if (data.GetDataPresent(DataFormats.Text))
{
label1.Text = data.GetData(DataFormats.Text).ToString();
}
将自定义的数据放置到剪切板,自定义一个图片类,并标记为可序列化(此处使用的命名空间是:TestClipboard)。将
自定义数据类型对象放置到剪切板的关键是DataObject类,它实现了IDataObject接口。它就像一个容器,存放将被放置在剪
切板上的数据。
[Serializable] public class MyPic
{
/// <summary>
/// 图片
/// </summary>
public Image Img;
/// <summary>
/// 图片信息
/// </summary>
public string ImgInfo;
}
public void SetMyPicToClipboard()
{
MyPic obj = new MyPic();
obj.Img = Properties.Resources.Image;
obj.ImgInfo = "测试将自定义类型保存至剪切板";
//创建数据对象,并将数据装入
IDataObject dataObj = new DataObject(obj);
//其他类型也可以放置在同一数据对象中
/*
dataObj.SetData(DataFormats.UnicodeText, "测试文字");
dataObj.SetData(DataFormats.Bitmap, Properties.Resources.Image);
*/
//复制到剪切板,第二个参数表示程序退出时不清空
Clipboard.SetDataObject(dataObj, true);
}
但是,使用Clipboard.SetDataObject方法将一个DataObject对象放到剪切板后,外界访问时,需要指定对象的完整类型
名称。如果某种数据类型只能在指定的进程中访问,则可以使用该方式,指定命名空间。
//首先判断剪切板上是否有我的数据:需要完全限定命名空间类型
if (Clipboard.ContainsData("WindowsFormsApplication1.MyPic"))
{
IDataObject dataObj = Clipboard.GetDataObject();//读取数据
MyPic myPic = dataObj.GetData("WindowsFormsApplication1.MyPic") as MyPic;//转换数据
pictureBox1.Image = myPic.Img;
textBox1.Text = myPic.ImgInfo;
}
2、使用、使用FileSystemWatcher实现进程同步实现进程同步
该组件可以监控特定的文件夹或文件,比如在此文件夹中某文件被删除或内容被改变时引发对应的事件。通过该组件让多
个进程同时监控一个文件,以此可以充当“临时”进程间通信渠道。
实现进程同步的关键点是:正确设置文件的共享和读写权限。
/// <summary>
/// 实现写入数据
weixin_38545332
- 粉丝: 6
- 资源: 979
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1