• C# 你不能调用的问题剪贴板线程


    最近在做一个项目,需要使用线程,并使用剪贴板,头发得到较少的数据在剪贴板上后,现在的孩子线程创建一个子线程,我特别困惑,上网查资料。最后,得到最终的。下面的例子现在将概括解:

    第一步:

    public void btnAutoFocus_Click(object sender,EventArgs e)

    {

    Thread myThread = new Thread(msc.AutoFocusArithmetic);

    //注意。一般启动一个线程的时候没有这句话,可是要操作剪切板的话这句话是必须要加上的。由于剪切板仅仅能在单线

    //程单元中訪问。这里的STA就是指单线程单元

    myThread .SetApartmentState(ApartmentState.STA);  

    myThread .Start();

    }

    第二步:还须要将Program启动类中

    static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]  //这句话保留。假设要在主线程中訪问剪切板。这句式必需要的,假设要在子线程中訪问剪切板,这个应该能够不要,可是默认是有的。只是这个我没有測试过不要这句话是什么结果。后面有时间測试之后再发博文
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new MainForm());
            }
        }

    第三步:这个是读取剪切板数据,

    private Image GetCaptureImage()
    {
            IDataObject iData = Clipboard.GetDataObject();
            Image img = null;
            if (iData != null)
            {
                 if (iData.GetDataPresent(DataFormats.Bitmap))
                 {
                      img = (Image)iData.GetData(DataFormats.Bitmap);
                 }
                 else if (iData.GetDataPresent(DataFormats.Dib))
                 {
                      img = (Image)iData.GetData(DataFormats.Dib);
                 }
            }
            return img;

    }

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    WinDbg 图形界面功能(一)
    WinDbg的安装、配置和功能
    windbg调试托管代码 .Net clr
    win32线程栈溢出问题 (二)
    win32线程栈溢出问题 (一)
    WinDbg常用命令系列---查看线程调用栈命令K*简介
    BCD码
    Intel 80386 CPU
    Intel 80286 CPU
    Intel 8086 CPU
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4615446.html
Copyright © 2020-2023  润新知