定时器之Quart.net(1)

第一步:Install-Package Quartz
namespace ProjectEdb
{
    class Program
    {
        static void Main(string[] args)
        {
           //例子1
            QuartzJob.CreateJob("test", "zkb", "0 */1 * * * ?").GetAwaiter().GetResult();
            //例子2
            //RunProgram().GetAwaiter().GetResult();

        }
    }
}
namespace ProjectEdb.Models
{
  public  class QuartzJob
    {
        public static async Task CreateJob(string name, string group, string cron)
        {
            ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
            IScheduler scheduler = await schedulerFactory.GetScheduler();

            DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now, 1);
            DateTimeOffset endTime = DateBuilder.NextGivenMinuteDate(DateTime.Now, 10);

            IJobDetail job = JobBuilder.Create<EdbQuartz>()
                             .WithIdentity(name, group)
                             .Build();

            ICronTrigger cronTrigger = (ICronTrigger)TriggerBuilder.Create()
                                       .StartAt(startTime)
                                       .EndAt(endTime)
                                       .WithIdentity(name, group)
                                       .WithCronSchedule(cron)
                                       .Build();

            await scheduler.ScheduleJob(job, cronTrigger);
            await scheduler.Start();
            Console.ReadLine();//这句话在net core控制台应用程序里是一定要加上的,否则,控制台的输出框会闪一下就没了
        }
    }
}
namespace ProjectEdb.Models
{
  public  class EdbQuartz: IJob
    {
        public async Task Execute(IJobExecutionContext context)
        {
            string path = @"D:\EDBStockInfo_Files\2019\1.txt";
            string value = DateTime.Now.ToString();
            if (File.Exists(path))
            {
                //File.Delete(path);
            }
            StreamWriter streamWriter = new StreamWriter(path, true);
            await streamWriter.WriteLineAsync(value);
            streamWriter.Flush();
            streamWriter.Close();
        }
    }
}

 

转载于:https://www.cnblogs.com/ZkbFighting/p/11389454.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用C语言中的`quicksort`函数来进行排序,而多线程可以通过使用线程库来实现。下面是一个简单的示例代码,演示了如何使用`quicksort`函数和多线程来对数组进行排序: ```c #include <stdio.h> #include <stdlib.h> #include <pthread.h> // 定义一个结构体,用于传递参数给线程 typedef struct { int* arr; int start; int end; } ThreadArg; // 快速排序函数 void* quicksort(void* arg) { ThreadArg* threadArg = (ThreadArg*)arg; int* arr = threadArg->arr; int start = threadArg->start; int end = threadArg->end; if (start >= end) return NULL; int pivot = arr[end]; int i = start - 1; for (int j = start; j <= end - 1; j++) { if (arr[j] <= pivot) { i++; int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } int temp = arr[i + 1]; arr[i + 1] = arr[end]; arr[end] = temp; int pivotIndex = i + 1; // 创建两个新线程对两个子数组进行排序 pthread_t leftThread, rightThread; ThreadArg leftArg, rightArg; leftArg.arr = arr; leftArg.start = start; leftArg.end = pivotIndex - 1; rightArg.arr = arr; rightArg.start = pivotIndex + 1; rightArg.end = end; pthread_create(&leftThread, NULL, quicksort, &leftArg); pthread_create(&rightThread, NULL, quicksort, &rightArg); // 等待两个子线程完成 pthread_join(leftThread, NULL); pthread_join(rightThread, NULL); return NULL; } int main() { int arr[] = {9, 2, 5, 6, 1, 8, 4, 7, 3}; int size = sizeof(arr) / sizeof(arr[0]); // 创建一个线程参数对象 ThreadArg arg; arg.arr = arr; arg.start = 0; arg.end = size - 1; // 创建排序线程 pthread_t sortThread; pthread_create(&sortThread, NULL, quicksort, &arg); // 等待排序线程完成 pthread_join(sortThread, NULL); // 输出排序结果 for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } return 0; } ``` 在上述代码中,我们使用了`quicksort`函数来进行快速排序,该函数被递归地调用以对子数组进行排序。当数组大小小于等于某个阈值时,排序过程将不再创建新的线程,而是直接进行串行排序,以避免线程创建和销毁的开销。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值