private void InitIncomingThreads() { Task.Factory.StartNew(() => { for (int i = 0; i < 1000; i++) { Thread.Sleep(1000); if (i % 2 == 0) { messageQueue.Enqueue(new SimpleMessage(i, "nolu mesaj işlendi. ilk thread")); } } }); Task.Factory.StartNew(() => { for (int i = 0; i < 1000; i++) { Thread.Sleep(1000); if (i % 2 == 1) { messageQueue.Enqueue(new SimpleMessage(i, "nolu mesaj işlendi. ikinci thread")); } } }); for (int i = 0; i < 1000; i++) { Task.Factory.StartNew((s) => { databaseCommandQueue.Enqueue(() => //POCO objeleri yerine anonymous function ekledik kuyruğumuza { //Burası DB işlemlerini gerçekleştireceğimiz kısım Thread.Sleep(100); WriteInfo($"{s} nolu db işlemi gerçekleştirildi");//burada i değişkenini kullanamayız. Biz i değişkenini kullanana kadar Thread.Sleep yüzünden değişkenimiz çoktan 1000 olacaktır. }); }, i); } }
private async Task CaptureJsonResponseAsync <T>( RequestType requestType, ResponseCreatedEventArgs args, Func <string, T> deserialize) { await Task.Yield(); var body = await args.Response.TextAsync(); var requestId = $"{DateTimeOffset.UtcNow.Ticks:D20}-{Guid.NewGuid():N}"; _queue.Enqueue(new Response( requestId, _operationType, _operationParameters, requestType, DateTimeOffset.UtcNow, args.Response.Request.Method, args.Response.Request.Url, body)); try { AddDeserializedResponse( requestId, deserialize(body)); } catch (JsonException) { try { AddDeserializedResponse( requestId, _deserializer.ErrorResponse(body)); var prettyJson = JObject.Parse(body).ToString(Formatting.Indented); _logger.LogError( $"An error was returned by Kroger.com:{Environment.NewLine}{{ErrorJson}}", prettyJson); } catch { // Ignore these failures. } throw; } }