zoukankan      html  css  js  c++  java
  • 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;

    }

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

  • 相关阅读:
    【整理】互联网服务端技术体系:存储基础之数据存储与索引结构
    python基础之enumerate() 函数+ Counter类计数器
    介绍几个好用的Java库
    【GIS】BlenderGIS应用配置之一
    使任意同步库快速变asyncio异步语法的方式 ,run_in_executor
    mysql查看表行数
    mysql8.0使用mysqldump报错:Unknown table ‘column_statistics‘ in information_schema (1109)
    sysbench安装使用,结果信息分析
    【1.6】shell使用 -p -f 之类的参数
    右键新建项中添加Typora新建Markdown文件快捷选项
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4615446.html
Copyright © 2011-2022 走看看