关于X64程序对X86程序依赖的一个案例-第二篇

TwainServerSender:

namespace TwainCsServer
{
    public class TwainServerSender
    {
        private NamedPipeServerStream _sender;
        public static TwainServerSender _instance;
        private TwainServerSender() { }
        public static TwainServerSender Instance
        {
            get { return _instance?? (_instance = new TwainServerSender()); }
        }
        public void Start(string senderName)
        {
            _sender = new NamedPipeServerStream(senderName);
        }

        public void SendMessages(CommandType type, string data)
        {
            _sender.WaitForConnection();
            try
            {
                string preData = (int)type + ":";
                using (StreamWriter writer = new StreamWriter(_sender))
                {
                    writer.WriteLine(preData + data);
                    writer.Flush();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Send error: " + ex.Message);
            }
        }

        public void Stop()
        {
            _sender.Close();
        }

    }
}

TwainServer:

namespace TwainCsServer
{
public class TwainServer
{
public static TwainServer _instance;
private TwainServer() { }
SynchronizationContext syncContext;
public static TwainServer Instance
{
get { return _instance ?? (_instance = new TwainServer()); }
}
public void setMainThread(SynchronizationContext syncContext)
{
this.syncContext = syncContext;
}
public void serverCentralControl()
{
TwainServerSender.Instance.Start("ScannerListener");
TwainServerReceiver.Instance.setThread(syncContext);
TwainServerReceiver.Instance.Start("ScannerOpenerator");

while (TwainServerReceiver.Instance.IsClosed())
{
TwainServerSender.Instance.Stop();
TwainServerReceiver.Instance.Stop();
break;
}
}
}
}

posted @ 2025-07-08 19:15  Wind_Swing_Dunn  阅读(6)  评论(0)    收藏  举报