C# AsyncEventHandler 异步处理

using System;

namespace ConsoleApplication1
{
    class Class1
    {
        public delegate void AsyncEventHandler();

        void Event1()
        {
            Console.WriteLine("Event1 Start");
            System.Threading.Thread.Sleep(2000);
            Console.WriteLine("Event1 End");
        }

        void Event2()
        {
            Console.WriteLine("Event2 Start");
            int i=1;
            while(i<500)
            {
                i=i+1;
              //  Console.WriteLine("Event2 "+i.ToString());
            }
            Console.WriteLine("Event2 End");
        }

        void CallbackMethod(IAsyncResult ar)
        {
            ((AsyncEventHandler) ar.AsyncState).EndInvoke(ar);
        }


        [STAThread]
        static void Main(string[] args)
        {
            long start=0;
            long end=0;
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 的 Socket 类库提供了异步操作的支持,这可以使我们更加高效地处理网络通信。在 Socket 类库中,异步操作包括异步发送和异步接收。 下面是一个简单的异步发送的示例代码: ```csharp using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; class Program { static void Main(string[] args) { string hostname = "www.example.com"; int port = 80; IPAddress[] ips = Dns.GetHostAddresses(hostname); IPEndPoint remoteEP = new IPEndPoint(ips[0], port); Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); byte[] sendData = Encoding.ASCII.GetBytes("Hello, world!"); clientSocket.BeginConnect(remoteEP, (result) => { clientSocket.EndConnect(result); clientSocket.BeginSend(sendData, 0, sendData.Length, SocketFlags.None, (sendResult) => { int bytesSent = clientSocket.EndSend(sendResult); Console.WriteLine("Sent {0} bytes to server.", bytesSent); clientSocket.Shutdown(SocketShutdown.Both); clientSocket.Close(); }, null); }, null); Console.ReadLine(); } } ``` 在上面的代码中,我们创建了一个 Socket 对象,然后使用 BeginConnect 方法异步连接到远程主机。在连接完成后,我们使用 BeginSend 方法异步发送数据。发送完成后,我们关闭 Socket 对象。 需要注意的是,异步操作通常是通过回调函数来完成的,这些回调函数都是在另一个线程中执行的。因此,在使用异步操作时,需要特别注意线程安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值