biz_thread.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using System.Configuration;
  8. using System.Windows.Forms;
  9. using System.Threading;
  10. using System.Diagnostics;
  11. using Saraff.Twain;
  12. using HXX.Scanner.Common;
  13. using HXX.Scanner.Biz.Socket;
  14. using HXX.Scanner.Biz.twain32.form;
  15. namespace HXX.Scanner.Biz
  16. {
  17. /// <summary>
  18. /// 构造tw使用的消息循环线程
  19. /// </summary>
  20. public class biz_thread
  21. {
  22. /// <summary>
  23. /// 消息循环线程
  24. /// </summary>
  25. public Thread main_thread { get; set; }
  26. /// <summary>
  27. /// 供tw使用的隐藏窗体
  28. /// </summary>
  29. public frmHandler frm_handler { get; set; }
  30. /// <summary>
  31. /// tw本体
  32. /// </summary>
  33. public Twain32 engine;
  34. /// <summary>
  35. /// 开启消息循环
  36. /// </summary>
  37. public void start()
  38. {
  39. main_thread = new Thread(() =>
  40. {
  41. try
  42. {
  43. frm_handler = new frmHandler();
  44. this.engine = new Twain32();
  45. this.engine.AppProductName = "Saraff.Twain.NET";
  46. this.engine.Country = TwCountry.CHINA;
  47. this.engine.IsTwain2Enable = false;
  48. this.engine.Language = TwLanguage.CHINESE_SIMPLIFIED;
  49. this.engine.ShowUI = false;
  50. this.engine.Parent = frm_handler;
  51. twain32_events.Init(engine);
  52. engine.AcquireCompleted += new System.EventHandler(twain32_events._twain32_AcquireCompleted);
  53. engine.AcquireError += new System.EventHandler<Saraff.Twain.Twain32.AcquireErrorEventArgs>(twain32_events._twain32_AcquireError);
  54. engine.EndXfer += new System.EventHandler<Saraff.Twain.Twain32.EndXferEventArgs>(twain32_events._twain32_EndXfer);
  55. engine.XferDone += new System.EventHandler<Saraff.Twain.Twain32.XferDoneEventArgs>(twain32_events._twain32_XferDone);
  56. engine.SetupFileXferEvent += new System.EventHandler<Saraff.Twain.Twain32.SetupFileXferEventArgs>(twain32_events._twain32_SetupFileXferEvent);
  57. engine.FileXferEvent += new System.EventHandler<Saraff.Twain.Twain32.FileXferEventArgs>(twain32_events._twain32_FileXferEvent);
  58. engine.DeviceEvent += new System.EventHandler<Saraff.Twain.Twain32.DeviceEventEventArgs>(twain32_events._twain32_DeviceEvent);
  59. Application.Run(frm_handler);
  60. }
  61. catch (Exception ee)
  62. {
  63. if (ee.Message.Contains("正在中止线程"))
  64. {
  65. LogManager.WriteLog("123");
  66. return;
  67. }
  68. LogManager.WriteLog(ee);
  69. }
  70. });
  71. main_thread.Start();
  72. }
  73. }
  74. }