Добавление IDisposable
This commit is contained in:
+37
-22
@@ -3,6 +3,7 @@ using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Example.Frontend;
|
||||
using Example.Shared;
|
||||
using mROA.Codegen;
|
||||
@@ -44,36 +45,50 @@ class Program
|
||||
|
||||
//правильный порядок команд 8-5-10-7
|
||||
var printer = factory.Create("Test");
|
||||
Console.WriteLine("Printer created");
|
||||
Thread.Sleep(100);
|
||||
using (var disposingPrinter = printer.Value)
|
||||
{
|
||||
Console.WriteLine("Printer created");
|
||||
Thread.Sleep(100);
|
||||
|
||||
var name = printer.Value.GetName();
|
||||
Console.WriteLine("Printer name : {0}", name);
|
||||
|
||||
Thread.Sleep(100);
|
||||
var name = disposingPrinter.GetName();
|
||||
Console.WriteLine("Printer name : {0}", name);
|
||||
|
||||
factory.Register(new SharedObject<IPrinter>(new ClientBasedPrinter()));
|
||||
Console.WriteLine("Registered printer");
|
||||
Thread.Sleep(100);
|
||||
Thread.Sleep(100);
|
||||
|
||||
factory.Register(new SharedObject<IPrinter>(new ClientBasedPrinter()));
|
||||
Console.WriteLine("Registered printer");
|
||||
Thread.Sleep(100);
|
||||
|
||||
|
||||
var registred = factory.GetFirstPrinter();
|
||||
Console.WriteLine("First printer");
|
||||
Thread.Sleep(100);
|
||||
var registred = factory.GetFirstPrinter();
|
||||
Console.WriteLine("First printer");
|
||||
Thread.Sleep(100);
|
||||
|
||||
Console.WriteLine(registred.Value);
|
||||
Console.WriteLine("Collecting all printers");
|
||||
var names = factory.CollectAllNames();
|
||||
Thread.Sleep(100);
|
||||
Console.WriteLine(registred.Value);
|
||||
Console.WriteLine("Collecting all printers");
|
||||
var names = factory.CollectAllNames();
|
||||
Thread.Sleep(100);
|
||||
|
||||
Console.WriteLine(string.Join(", ", names));
|
||||
Console.WriteLine(string.Join(", ", names));
|
||||
|
||||
var page = printer.Value.Print("Test Page", new CancellationToken()).GetAwaiter().GetResult();
|
||||
Console.WriteLine("Page printed");
|
||||
var data = page.Value.GetData();
|
||||
Console.WriteLine("Data : {0}", Encoding.UTF8.GetString(data));
|
||||
var page = disposingPrinter.Print("Test Page", new CancellationToken()).GetAwaiter().GetResult();
|
||||
Console.WriteLine("Page printed");
|
||||
var data = page.Value.GetData();
|
||||
Console.WriteLine("Data : {0}", Encoding.UTF8.GetString(data));
|
||||
}
|
||||
|
||||
// var loadSingleton = context.GetSingleObject(typeof(ILoadTest)) as ILoadTest;
|
||||
|
||||
var loadSingleton = context.GetSingleObject(typeof(ILoadTest)) as ILoadTest;
|
||||
|
||||
|
||||
var cts = new CancellationTokenSource();
|
||||
var token = cts.Token;
|
||||
var t = Task.Run(async () => await loadSingleton!.AsyncTest(token));
|
||||
|
||||
Thread.Sleep(5000);
|
||||
cts.Cancel();
|
||||
Console.WriteLine($"Token state {cts.Token.IsCancellationRequested}");
|
||||
Console.ReadKey();
|
||||
//
|
||||
// const int iterations = 10000;
|
||||
// var timer = Stopwatch.StartNew();
|
||||
|
||||
Reference in New Issue
Block a user