异步操作的一点认识

本文介绍了使用C#实现的一个简单异步文件写入操作的例子。通过定义委托和使用BeginInvoke与EndInvoke方法来实现异步写入过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小弟第一次写blog,以前没有接触过remoting,看了半天webcast,自己尝试写了一个简单的例子

一个异步写文件的操作

   None.gif public delegate void WriteMessageDelegate(string msg);
None.gif
None.gif 
public class MessageClass
ExpandedBlockStart.gif
{
InBlock.gif        
public void AysncWriteMessage(string str)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
{
InBlock.gif            
//委托代理
InBlock.gif
            WriteMessageDelegate rmd = new WriteMessageDelegate(WriteMessage);
InBlock.gif
InBlock.gif            
//记录异步调用的结果
InBlock.gif
            AsyncResult result;
InBlock.gif
InBlock.gif            
//异步调用
InBlock.gif
            result = (AsyncResult)rmd.BeginInvoke(str, nullnull);
InBlock.gif            
InBlock.gif            
//判断是否异步调用完成
InBlock.gif
            while (result.IsCompleted)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
InBlock.gif                         rmd.EndInvoke(result);
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
private void WriteMessage(string msg)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
InBlock.gif               
//写一个文件
InBlock.gif
               using (StreamWriter sw = new StreamWriter(@"D:\TestFile.txt"))
ExpandedSubBlockStart.gifContractedSubBlock.gif             
{
InBlock.gif                      sw.Write(msg);
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif             }

ExpandedBlockEnd.gif    }

None.gif


调用代码aspx:
None.gif MessageClass msg = new MessageClass();
None.gif msg.AysncWriteMessage(
"测试");

不知道这算不算个很好例子,第一次写,欢迎拍砖

转载于:https://www.cnblogs.com/yuewh491/archive/2007/04/10/707379.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值