当前位置: 首页>>代码示例>>C#>>正文


C# ShareX.WorkerTask类代码示例

本文整理汇总了C#中ShareX.WorkerTask的典型用法代码示例。如果您正苦于以下问题:C# WorkerTask类的具体用法?C# WorkerTask怎么用?C# WorkerTask使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


WorkerTask类属于ShareX命名空间,在下文中一共展示了WorkerTask类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Add

        public void Add(WorkerTask task)
        {
            string info = task.Info.ToString();

            if (!string.IsNullOrEmpty(info))
            {
                RecentTask recentItem = new RecentTask()
                {
                    FilePath = task.Info.FilePath,
                    URL = task.Info.Result.URL,
                    ThumbnailURL = task.Info.Result.ThumbnailURL,
                    DeletionURL = task.Info.Result.DeletionURL,
                    ShortenedURL = task.Info.Result.ShortenedURL
                };

                Add(recentItem);
            }

            if (Program.Settings.RecentTasksSave)
            {
                Program.Settings.RecentTasks = Tasks.ToArray();
            }
            else
            {
                Program.Settings.RecentTasks = null;
            }
        }
开发者ID:ElectronicWar,项目名称:ShareX,代码行数:27,代码来源:RecentTaskManager.cs

示例2: Start

        public static void Start(WorkerTask task)
        {
            if (task != null)
            {
                Tasks.Add(task);
                UpdateMainFormTip();

                if (task.Status != TaskStatus.History)
                {
                    task.StatusChanged += task_StatusChanged;
                    task.UploadStarted += task_UploadStarted;
                    task.UploadProgressChanged += task_UploadProgressChanged;
                    task.UploadCompleted += task_UploadCompleted;
                    task.TaskCompleted += task_TaskCompleted;
                    task.UploadersConfigWindowRequested += Task_UploadersConfigWindowRequested;
                }

                CreateListViewItem(task);

                if (task.Status != TaskStatus.History)
                {
                    StartTasks();
                }
            }
        }
开发者ID:Grifs99,项目名称:ShareX,代码行数:25,代码来源:TaskManager.cs

示例3: CreateHistoryTask

        public static WorkerTask CreateHistoryTask(RecentTask recentTask)
        {
            WorkerTask task = new WorkerTask(null);
            task.Status = TaskStatus.History;
            task.Info.FilePath = recentTask.FilePath;
            task.Info.FileName = recentTask.FileName;
            task.Info.Result.URL = recentTask.URL;
            task.Info.Result.ThumbnailURL = recentTask.ThumbnailURL;
            task.Info.Result.DeletionURL = recentTask.DeletionURL;
            task.Info.Result.ShortenedURL = recentTask.ShortenedURL;
            task.Info.TaskEndTime = recentTask.Time.ToLocalTime();

            return task;
        }
开发者ID:L1Q,项目名称:ShareX,代码行数:14,代码来源:WorkerTask.cs

示例4: Start

 public static void Start(WorkerTask task)
 {
     if (task != null)
     {
         Tasks.Add(task);
         UpdateMainFormTip();
         task.StatusChanged += task_StatusChanged;
         task.UploadStarted += task_UploadStarted;
         task.UploadProgressChanged += task_UploadProgressChanged;
         task.UploadCompleted += task_UploadCompleted;
         CreateListViewItem(task);
         StartTasks();
     }
 }
开发者ID:Maximus325,项目名称:ShareX,代码行数:14,代码来源:TaskManager.cs

示例5: Remove

        public static void Remove(WorkerTask task)
        {
            if (task != null)
            {
                task.Stop();
                Tasks.Remove(task);

                ListViewItem lvi = FindListViewItem(task);

                if (lvi != null)
                {
                    ListViewControl.Items.Remove(lvi);
                }

                task.Dispose();
            }
        }
开发者ID:sides,项目名称:sharexl,代码行数:17,代码来源:TaskManager.cs

示例6: task_UploadCompleted

        private static void task_UploadCompleted(WorkerTask task)
        {
            try
            {
                if (ListViewControl != null && task != null)
                {
                    if (task.RequestSettingUpdate)
                    {
                        Program.MainForm.UpdateMainFormSettings();
                    }

                    TaskInfo info = task.Info;

                    if (info != null && info.Result != null)
                    {
                        ListViewItem lvi = FindListViewItem(task);

                        if (info.Result.IsError)
                        {
                            string errors = string.Join("\r\n\r\n", info.Result.Errors.ToArray());

                            DebugHelper.WriteLine("Task failed. Filename: {0}, Errors:\r\n{1}", info.FileName, errors);

                            if (lvi != null)
                            {
                                lvi.SubItems[1].Text = Resources.TaskManager_task_UploadCompleted_Error;
                                lvi.SubItems[6].Text = string.Empty;
                                lvi.ImageIndex = 1;
                            }

                            if (!info.TaskSettings.AdvancedSettings.DisableNotifications)
                            {
                                if (info.TaskSettings.GeneralSettings.PlaySoundAfterUpload)
                                {
                                    TaskHelpers.PlayErrorSound(info.TaskSettings);
                                }

                                if (info.TaskSettings.GeneralSettings.PopUpNotification != PopUpNotificationType.None && Program.MainForm.niTray.Visible && !string.IsNullOrEmpty(errors))
                                {
                                    Program.MainForm.niTray.Tag = null;
                                    Program.MainForm.niTray.ShowBalloonTip(5000, "sharexl - " + Resources.TaskManager_task_UploadCompleted_Error, errors, ToolTipIcon.Error);
                                }
                            }
                        }
                        else
                        {
                            DebugHelper.WriteLine("Task completed. Filename: {0}, URL: {1}, Duration: {2} ms", info.FileName, info.Result.ToString(), (int)info.UploadDuration.TotalMilliseconds);

                            string result = info.Result.ToString();

                            if (string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(info.FilePath))
                            {
                                result = info.FilePath;
                            }

                            if (lvi != null)
                            {
                                lvi.Text = info.FileName;
                                lvi.SubItems[1].Text = info.Status;
                                lvi.ImageIndex = 2;

                                if (!string.IsNullOrEmpty(result))
                                {
                                    lvi.SubItems[6].Text = result;
                                }
                            }

                            if (!task.StopRequested && !string.IsNullOrEmpty(result))
                            {
                                if (info.TaskSettings.GeneralSettings.SaveHistory && (!info.TaskSettings.AdvancedSettings.HistorySaveOnlyURL ||
                                   (!string.IsNullOrEmpty(info.Result.URL) || !string.IsNullOrEmpty(info.Result.ShortenedURL))))
                                {
                                    HistoryManager.AddHistoryItemAsync(Program.HistoryFilePath, info.GetHistoryItem());
                                }

                                RecentManager.Add(result);

                                if (Program.Settings.RecentLinksRemember)
                                {
                                    Program.Settings.RecentLinks = RecentManager.Items.ToArray();
                                }
                                else
                                {
                                    Program.Settings.RecentLinks = null;
                                }

                                if (!info.TaskSettings.AdvancedSettings.DisableNotifications && info.Job != TaskJob.ShareURL)
                                {
                                    if (info.TaskSettings.GeneralSettings.PlaySoundAfterUpload)
                                    {
                                        TaskHelpers.PlayTaskCompleteSound(info.TaskSettings);
                                    }

                                    if (!string.IsNullOrEmpty(info.TaskSettings.AdvancedSettings.BalloonTipContentFormat))
                                    {
                                        result = new UploadInfoParser().Parse(info, info.TaskSettings.AdvancedSettings.BalloonTipContentFormat);
                                    }

                                    if (!string.IsNullOrEmpty(result))
                                    {
//.........这里部分代码省略.........
开发者ID:sides,项目名称:sharexl,代码行数:101,代码来源:TaskManager.cs

示例7: task_UploadProgressChanged

        private static void task_UploadProgressChanged(WorkerTask task)
        {
            if (task.Status == TaskStatus.Working && ListViewControl != null)
            {
                TaskInfo info = task.Info;

                ListViewItem lvi = FindListViewItem(task);

                if (lvi != null)
                {
                    lvi.SubItems[1].Text = string.Format("{0:0.0}%", info.Progress.Percentage);
                    lvi.SubItems[2].Text = string.Format("{0} / {1}", info.Progress.Position.ToSizeString(Program.Settings.BinaryUnits), info.Progress.Length.ToSizeString(Program.Settings.BinaryUnits));

                    if (info.Progress.Speed > 0)
                    {
                        lvi.SubItems[3].Text = ((long)info.Progress.Speed).ToSizeString(Program.Settings.BinaryUnits) + "/s";
                    }

                    lvi.SubItems[4].Text = Helpers.ProperTimeSpan(info.Progress.Elapsed);
                    lvi.SubItems[5].Text = Helpers.ProperTimeSpan(info.Progress.Remaining);
                }

                UpdateProgressUI();
            }
        }
开发者ID:sides,项目名称:sharexl,代码行数:25,代码来源:TaskManager.cs

示例8: FindListViewItem

        private static ListViewItem FindListViewItem(WorkerTask task)
        {
            if (ListViewControl != null)
            {
                foreach (ListViewItem lvi in ListViewControl.Items)
                {
                    WorkerTask tag = lvi.Tag as WorkerTask;

                    if (tag != null && tag == task)
                    {
                        return lvi;
                    }
                }
            }

            return null;
        }
开发者ID:sides,项目名称:sharexl,代码行数:17,代码来源:TaskManager.cs

示例9: task_StatusChanged

 private static void task_StatusChanged(WorkerTask task)
 {
     DebugHelper.WriteLine("Task status: " + task.Status);
     ChangeListViewItemStatus(task);
     UpdateProgressUI();
 }
开发者ID:sides,项目名称:sharexl,代码行数:6,代码来源:TaskManager.cs

示例10: ChangeListViewItemStatus

        private static void ChangeListViewItemStatus(WorkerTask task)
        {
            if (ListViewControl != null)
            {
                ListViewItem lvi = FindListViewItem(task);

                if (lvi != null)
                {
                    lvi.SubItems[1].Text = task.Info.Status;
                }
            }
        }
开发者ID:sides,项目名称:sharexl,代码行数:12,代码来源:TaskManager.cs

示例11: CreateListViewItem

        private static void CreateListViewItem(WorkerTask task)
        {
            if (ListViewControl != null)
            {
                TaskInfo info = task.Info;

                DebugHelper.WriteLine("Task in queue. Job: {0}, Type: {1}, Host: {2}", info.Job, info.UploadDestination, info.UploaderHost);

                ListViewItem lvi = new ListViewItem();
                lvi.Tag = task;
                lvi.Text = info.FileName;
                lvi.SubItems.Add(Resources.TaskManager_CreateListViewItem_In_queue);
                lvi.SubItems.Add(string.Empty);
                lvi.SubItems.Add(string.Empty);
                lvi.SubItems.Add(string.Empty);
                lvi.SubItems.Add(string.Empty);
                lvi.SubItems.Add(string.Empty);
                lvi.ImageIndex = 3;
                if (Program.Settings.ShowMostRecentTaskFirst)
                {
                    ListViewControl.Items.Insert(0, lvi);
                }
                else
                {
                    ListViewControl.Items.Add(lvi);
                }
                lvi.EnsureVisible();
                ListViewControl.FillLastColumn();
            }
        }
开发者ID:sides,项目名称:sharexl,代码行数:30,代码来源:TaskManager.cs

示例12: CreateTextUploaderTask

 public static WorkerTask CreateTextUploaderTask(string text, TaskSettings taskSettings)
 {
     WorkerTask task = new WorkerTask(taskSettings);
     task.Info.Job = TaskJob.TextUpload;
     task.Info.DataType = EDataType.Text;
     task.Info.FileName = TaskHelpers.GetFilename(taskSettings, taskSettings.AdvancedSettings.TextFileExtension);
     task.tempText = text;
     return task;
 }
开发者ID:noscripter,项目名称:ShareX,代码行数:9,代码来源:WorkerTask.cs

示例13: task_UploadCompleted

        private static void task_UploadCompleted(WorkerTask task)
        {
            TaskInfo info = task.Info;

            if (info != null && info.Result != null && !info.Result.IsError)
            {
                string url = info.Result.ToString();

                if (!string.IsNullOrEmpty(url))
                {
                    string text = $"Upload completed. URL: {url}";

                    if (info.UploadDuration != null)
                    {
                        text += $", Duration: {info.UploadDuration.ElapsedMilliseconds} ms";
                    }

                    DebugHelper.WriteLine(text);
                }
            }
        }
开发者ID:Grifs99,项目名称:ShareX,代码行数:21,代码来源:TaskManager.cs

示例14: CreateFileUploaderTask

        public static WorkerTask CreateFileUploaderTask(string filePath, TaskSettings taskSettings)
        {
            WorkerTask task = new WorkerTask(taskSettings);
            task.Info.FilePath = filePath;
            task.Info.DataType = TaskHelpers.FindDataType(task.Info.FilePath, taskSettings);

            if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern)
            {
                string ext = Path.GetExtension(task.Info.FilePath);
                task.Info.FileName = TaskHelpers.GetFilename(task.Info.TaskSettings, ext);
            }

            if (task.Info.TaskSettings.AdvancedSettings.ProcessImagesDuringFileUpload && task.Info.DataType == EDataType.Image)
            {
                task.Info.Job = TaskJob.Job;
                task.tempImage = ImageHelpers.LoadImage(task.Info.FilePath);
            }
            else
            {
                task.Info.Job = TaskJob.FileUpload;

                if (!task.LoadFileStream())
                {
                    return null;
                }
            }

            return task;
        }
开发者ID:noscripter,项目名称:ShareX,代码行数:29,代码来源:WorkerTask.cs

示例15: CreateDownloadTask

        public static WorkerTask CreateDownloadTask(string url, bool upload, TaskSettings taskSettings)
        {
            WorkerTask task = new WorkerTask(taskSettings);
            task.Info.Job = upload ? TaskJob.DownloadUpload : TaskJob.Download;
            task.Info.DataType = TaskHelpers.FindDataType(url, taskSettings);

            string filename = URLHelpers.URLDecode(url, 10);
            filename = URLHelpers.GetFileName(filename);
            filename = Helpers.GetValidFileName(filename);

            if (task.Info.TaskSettings.UploadSettings.FileUploadUseNamePattern)
            {
                string ext = Path.GetExtension(filename);
                filename = TaskHelpers.GetFilename(task.Info.TaskSettings, ext);
            }

            if (string.IsNullOrEmpty(filename))
            {
                return null;
            }

            task.Info.FileName = filename;
            task.Info.Result.URL = url;
            return task;
        }
开发者ID:L1Q,项目名称:ShareX,代码行数:25,代码来源:WorkerTask.cs


注:本文中的ShareX.WorkerTask类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。