Program.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading;
  5. using System.Threading.Tasks;
  6. using System.Windows.Forms;
  7. using Core.RabbitMQBus.Common;
  8. using Core.RabbitMQBus.EventBus;
  9. using Core.RabbitMQBus.Extensions;
  10. using Microsoft.AspNetCore;
  11. using Microsoft.AspNetCore.Builder;
  12. using Microsoft.AspNetCore.Hosting;
  13. using Microsoft.Extensions.DependencyInjection;
  14. using Microsoft.Extensions.Logging;
  15. namespace WindowsFormsApp1
  16. {
  17. static class Program
  18. {
  19. private static IRabbitMqPublisher _rabbitMqPublisher;
  20. /// <summary>
  21. /// The main entry point for the application.
  22. /// </summary>
  23. [STAThread]
  24. static void Main(string[] args)
  25. {
  26. Console.WriteLine("Hello World!");
  27. IServiceCollection services = new ServiceCollection();
  28. services.AddLogging();
  29. services.AddTransient<ILoggerFactory, LoggerFactory>();
  30. services.AddTransient<ITestService, TestService>();
  31. services.RegisterRabbitMQ(e => new RabbitMQOptions() { HostName = "124.71.132.255" }); //localhost
  32. services.RabbitMQRegisterSubscriber("Win", "Service");
  33. //构建容器
  34. IServiceProvider serviceProvider = services.BuildServiceProvider();
  35. // 创建ConsoleLogProvider并根据日志类目名称(CategoryName)生成Logger实例
  36. //解析
  37. _rabbitMqPublisher = serviceProvider.GetService<IRabbitMqPublisher>();
  38. //Publisher();
  39. //CreateWebHostBuilder(args).Build().Run();
  40. Application.SetHighDpiMode(HighDpiMode.SystemAware);
  41. Application.EnableVisualStyles();
  42. Application.SetCompatibleTextRenderingDefault(false);
  43. Application.Run(new Form1());
  44. }
  45. public static void mq()
  46. {
  47. }
  48. public static void Publisher()
  49. {
  50. for (int i = 0; i < 10000; i++) //100000
  51. {
  52. Console.WriteLine("PublishTestCount:" + i);
  53. _rabbitMqPublisher.Publish("PublishTest1", "测试" + i);
  54. _rabbitMqPublisher.Publish("PublishTest2", "测试" + i);
  55. }
  56. }
  57. }
  58. public class TestService : ITestService, ISubscribe
  59. {
  60. [Subscribe(queueName: "PublishTest1")]
  61. public async Task<ExecuteMethodResult> Test(string message)
  62. {
  63. Thread.Sleep(10);
  64. Console.WriteLine(message + "PublishTest1");
  65. return await Task.FromResult(ExecuteMethodResult.Success());
  66. }
  67. [Subscribe(queueName: "PublishTest2")]
  68. public async Task<ExecuteMethodResult> Test1(string message)
  69. {
  70. Console.WriteLine(message + "PublishTest2");
  71. return await Task.FromResult(ExecuteMethodResult.Success());
  72. }
  73. }
  74. public interface ITestService
  75. {
  76. }
  77. }