Как Minimal API обрабатывает одновременные запросы от нескольких пользователей?C#

Место общения программистов C#
Ответить
Anonymous
 Как Minimal API обрабатывает одновременные запросы от нескольких пользователей?

Сообщение Anonymous »

Предположим, я использую следующую конечную точку C# Minimal API:
private Calculator calcObj = new Calculator ();

app.MapGet("/calc", (int a, int b) =>
{
var additionResult = calcObj.Addition(a, b);
var multiplicationResult = calcObj.Multiplication(a, b);
return Results.Ok(new Message() { Text = "Result for addition: " + additionResult.ToString() + "Result for multiplication: " + multiplicationResult.ToString() });
});

Этот API могут вызывать тысячи пользователей одновременно.
Итак, если первый пользователь вызывает API с a=1, b= 2, и второй пользователь вызывает его с помощью a=3, b=4, а следующий пользователь с помощью... и так далее...
Как каждый пользователь получает свой личный результат, не получая результат вычисления «уничтожается» вводом следующего пользователя?
Я знаю Среда выполнения .NET использует пул потоков для управления потоками. Когда поступает запрос, для его обработки назначается поток из пула.
Тогда теоретически проблем быть не должно, верно?
Или мне нужно реализовать некоторую блокировку механизм?
Примечание: MyCalculator не использует базу данных. Он построен только из структур, классов и типов данных C#.
ОБНОВЛЕНИЕ:
Чтобы было более понятно, предположим, что калькулятор делает следующее (я знаю, что члены не нужны, просто чтобы обсудить проблему):
using System;

class Calculator
{
private double A;
private double B
public double Addition(a, b)
{
A=a;
B=b;
return A+B;
}
public double Multiplication(a, b)
{
A=a;
B=b;
return A*B;
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... iple-users
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»