c#结集

编程入门 行业动态 更新时间:2024-10-07 12:21:04

c#结集

c#结集

//1.Application.DoEvents()

public int ReceiveBuffer()

         {

             int newSize;

             strLastError = "没有错误";

             try

             {

                 while (true)

                 {

                     Application.DoEvents();

                     if (SocketClient.Poll((int)5, SelectMode.SelectRead) == false)

                     {

                         Thread.Sleep(100);

                         continue;

                     }

                     newSize = SocketClient.Receive(Buffer, 0, 1024, SocketFlags.None);

                     if (newSize == 0)

                     {

                         strLastError = "网络通讯关闭错误";

                         return (-1);

                     }

                    return (newSize);

                 }

             }

             catch (Exception e)

             {

                 strLastError = "异常网络接收错误,系统信息:" + e.Message;

                 return (-1);

             }

         }

//2.获得程序自身版本号

using System.Reflection;

Assembly.GetExecutingAssembly().GetName().Version.ToString();

//3.线程与界面窗体同步通讯

方法一用Invoke:

        delegate void SetLogCallBack(string msg);


        private void SetLog(string msg)
        {
            try
            {
                if (Textlog.InvokeRequired)
                {
                    SetLogCallBack aSetLog = new SetLogCallBack(SetLog);
                    this.Invoke(aSetLog, new object[] { msg});
                }
                else
                {
                    Textlog.AppendText(msg + "/r/n");
                    Textlog.SelectionStart = Textlog.Text.Length;
                    Textlog.ScrollToCaret();
                }
            }
            catch
            {
            }
        }

方法二event+BeginInvoke:

public delegate void TransactNotifyEventHandler(object sender, TransNotifyEventArgs e);

public class TransManager
{

        Thread t;

        #region Event
        public event TransactNotifyEventHandler TransNotify;

        protected virtual void OnTransNotify(TransNotifyEventArgs e)
        {
            if (TransNotify != null)
            {
                TransNotify(this, e);
            }
        }
        #endregion

        public bool Start()
        {
            t = new Thread(new ThreadStart(this.TransThreadPorc));
            t.Start();
            return true;
        }

        private void TransThreadPorc()
        {

                OnTransNotify(new TransNotifyEventArgs("hello world"));

        }

}

 

 

///窗口界面部分

        TransManager transMgr = new TransManager();
        private void FrmMain_Load(object sender, EventArgs e)
        {
          transMgr.TransNotify += new TransactNotifyEventHandler(TransactNotify);
            try
            {
                transMgr.Start();
            }
            catch
            {
            }
        }
        public void TransactNotify(object sender, TransNotifyEventArgs e)
        {
            if (this.InvokeRequired)
            {
                object[] param = new object[2] { sender, e };
                this.BeginInvoke(new TransactNotifyEventHandler(OnTransactNotify), param);
            }
            else
            {
                OnTransactNotify(sender, e);
            }
        }
        private void OnTransactNotify(object sender, TransNotifyEventArgs e)
        {

                    Textlog.AppendText(e.msg + "/r/n");
                    Textlog.SelectionStart = Textlog.Text.Length;
                    Textlog.ScrollToCaret();
        }

//4. string与byte[]转换

System.Text.Encoding.Default.GetString()

System.Text.Encoding.Default.GetBytes()

//int byte 转换

int i;

byte[] b=BitConverter.GetBytes( 0xba5eba11);

i= BitConverter.ToInt32(b, 0);

更多推荐

c#结集

本文发布于:2024-03-14 05:45:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735763.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!