日期:2014-05-18  浏览次数:20976 次

[6月27日]解决马上给分
通过动态 我new了100个 Axzkemkeeper.AxCZKEM ax 对象,并且注册事件时都是OnAttTransactionEx(这100个对象是给100台考勤机设置的,当用户在1~100的考勤机打卡时,就触发下面这个事件)

我的问题:主界面卡。
一触发这个事件 主界面就定住了,请问根据 我的情况这个问题如何解决。 (请举例子,或简单代码)
C# code

 private void ax_OnAttTransactionEx(object sender, Axzkemkeeper._IZKEMEvents_OnAttTransactionExEvent e)
        {
           //....         
        }



------解决方案--------------------
多线程
------解决方案--------------------
比较简单的用BackgroundThread控件:

C# code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Threading.UI.Winforms
{
    public partial class BackgroundWorkerBadExample : Form
    {
        public BackgroundWorkerBadExample()
        {
            InitializeComponent();
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                for (int i = 0; i < (int)e.Argument; i++)
                {
                    txtResults.Text += string.Format(
                        "processing {0}\r\n", i.ToString());
                }
            }
            catch (InvalidOperationException oex)
            {
                MessageBox.Show(oex.Message);
            }

        }

        private void backgroundWorker1_RunWorkerCompleted(object sender, 
            RunWorkerCompletedEventArgs e)
        {
            MessageBox.Show("Completed background task");
        }

        private void btnGo_Click(object sender, EventArgs e)
        {
            backgroundWorker1.RunWorkerAsync(100);
        }
    }
}