防止winform假死新技术,visual studio 2005自带的控件

本文介绍了一个在Windows Forms应用程序中使用BackgroundWorker组件的具体案例,该组件用于后台线程处理,避免UI阻塞。示例展示了如何初始化背景工作、发送数据并通过TCP协议与服务器交互的过程。

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

这里讲的是backgroundWorker看上去在winform中的应用还是不错的,代码如下:

 

 CEnum.Message_Body[] mContent = new CEnum.Message_Body[2];
            mContent[
0].eName = CEnum.TagName.ServerInfo_GameDBID;
            mContent[
0].eTag = CEnum.TagFormat.TLV_INTEGER;
            mContent[
0].oContent = 1;

            mContent[
1].eName = CEnum.TagName.ServerInfo_GameID;
            mContent[
1].eTag = CEnum.TagFormat.TLV_INTEGER;
            mContent[
1].oContent = m_ClientEvent.GetInfo("GameID_FJ");

            
this.backgroundWorkerFormLoad.RunWorkerAsync(mContent);

 还有在在这里加上它的两个事件

 

  private void backgroundWorkerFormLoad_DoWork(object sender, DoWorkEventArgs e)
        
{
            
lock (typeof(C_Event.CSocketEvent))
            
{
                mServerInfo 
= Operation_FJ.GetServerList(this.m_ClientEvent, (CEnum.Message_Body[])e.Argument);
            }

        }


        
private void backgroundWorkerFormLoad_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        
{
            CmbServer 
= Operation_FJ.BuildCombox(mServerInfo, CmbServer);

            PnlPage.Visible 
= false;

            tmp_ClientEvent 
= m_ClientEvent.GetSocket(m_ClientEvent, Operation_FJ.GetItemAddr(mServerInfo, CmbServer.Text));
        }

其中DoWork做的是发送命令字,这是通过socket实现的,用的TCP协议,在这里会自定义一些消息和命令字

下面方法会接受服务器端传来的消息.这样就行了,实现了这个技术.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值