예제 #1
0
        /// <summary>
        /// 导出文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsbExport_Click(object sender, EventArgs e)
        {
            var folderDialog = new FolderBrowserDialog();

            if (folderDialog.ShowDialog() == DialogResult.OK)
            {
                string folderPath = folderDialog.SelectedPath;
                tsbExport.Enabled = false;
                this.notifyIcon1.BalloonTipText = "正在导出图片,请稍后。。";
                this.notifyIcon1.ShowBalloonTip(3000);

                Bitmap bitmap = null;
                int    index  = 0;
                Asyn.Task(() =>
                {
                    while ((bitmap = StaticClass.Images.GetExportImage()) != null)
                    {
                        index++;
                        bitmap.Save(System.IO.Path.Combine(folderPath, string.Format("{0}.png", index)), bitmap.RawFormat);
                    }
                }).OnSuccess(() =>
                {
                    tsbExport.Enabled = true;
                    this.notifyIcon1.BalloonTipText = string.Format("已成功导出{0}张", index);
                    this.notifyIcon1.ShowBalloonTip(3000);
                }).OnError((ex) =>
                {
                    this.notifyIcon1.BalloonTipText = "导出处理失败。。";
                    this.notifyIcon1.ShowBalloonTip(3000);
                }).Start();
            }
        }
예제 #2
0
파일: Asyn.cs 프로젝트: luezl/CaptureX
        /// <summary>
        /// 异步线程池
        /// </summary>
        /// <returns></returns>
        private static Asyn AsynPool()
        {
            if (_asynPool == null)
            {
                _asynPool = new LinkedList <Asyn>();
                for (int ii = 0; ii < POOLCOUNT; ii++)
                {
                    _asynPool.AddLast(new Asyn());
                }
            }

            while (true)
            {
                if (_asynPool.Count > 0)
                {
                    Asyn t = _asynPool.First.Value;
                    _asynPool.RemoveFirst();

                    return(t);
                }

                Thread.Sleep(50);
            }
        }