using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Configuration; using System.Windows.Forms; using System.Threading; using System.Diagnostics; using Saraff.Twain; using HXX.Scanner.Common; using HXX.Scanner.Biz.Socket; using HXX.Scanner.Biz.twain32.form; namespace HXX.Scanner.Biz { /// /// 构造tw使用的消息循环线程 /// public class biz_thread { /// /// 消息循环线程 /// public Thread main_thread { get; set; } /// /// 供tw使用的隐藏窗体 /// public frmHandler frm_handler { get; set; } /// /// tw本体 /// public Twain32 engine; /// /// 开启消息循环 /// public void start() { main_thread = new Thread(() => { try { frm_handler = new frmHandler(); this.engine = new Twain32(); this.engine.AppProductName = "Saraff.Twain.NET"; this.engine.Country = TwCountry.CHINA; this.engine.IsTwain2Enable = false; this.engine.Language = TwLanguage.CHINESE_SIMPLIFIED; this.engine.ShowUI = false; this.engine.Parent = frm_handler; twain32_events.Init(engine); engine.AcquireCompleted += new System.EventHandler(twain32_events._twain32_AcquireCompleted); engine.AcquireError += new System.EventHandler(twain32_events._twain32_AcquireError); engine.EndXfer += new System.EventHandler(twain32_events._twain32_EndXfer); engine.XferDone += new System.EventHandler(twain32_events._twain32_XferDone); engine.SetupFileXferEvent += new System.EventHandler(twain32_events._twain32_SetupFileXferEvent); engine.FileXferEvent += new System.EventHandler(twain32_events._twain32_FileXferEvent); engine.DeviceEvent += new System.EventHandler(twain32_events._twain32_DeviceEvent); Application.Run(frm_handler); } catch (Exception ee) { if (ee.Message.Contains("正在中止线程")) { LogManager.WriteLog("123"); return; } LogManager.WriteLog(ee); } }); main_thread.Start(); } } }