Wielowątkowość przy zapytaniach HTTP bez zwracania wartości

0

Zastanawiam się nad takim problemem. Jest sobie aplikacja, która otrzymuje eventy z pewnego źródła (do pominięcia z jakiego). Event zostaje przekształcony, a dane z niego pozyskane są wysyłane w postaci zapytania HTTP. To czy zapytanie wykona się poprawnie czy nie nas nie interesuje. Czy w takiej sytuacji zastosować zwykłe:

new Thread (SendHTTP).Start();

czy może jest jakiś bardziej elegancki sposób?

2

jeśli nie czekasz na odpowiedź i jej nie obrabiasz to jest to najszybsze i najprostsze

0

Jeszcze takie pytanie dla pewności. Mam eventy od zewnętrznego urządzenia i zależy mi na ich szybkim obsłużeniu (jak do tej pory część eventów mi przepada i szukam przyczyny). Czy poniższe rozwiązanie jest poprawne i możliwie najbardziej wydajne (przy pojawieniu się eventu tworzę nowy wątek i obsługuję go niezależnie)?

        
// Event notification
private void tapi_ITTAPIEventNotification_Event_Event(TAPI_EVENT TapiEvent, object pEvent)
{
     Thread currentEventThread = new Thread(() => tapi_ITTAPIEventNotificationHandlingMethod(TapiEvent, pEvent));
     currentEventThread.Start();
}

// Event notification handling method
private void tapi_ITTAPIEventNotificationHandlingMethod(TAPI_EVENT TapiEvent, object pEvent)
{
     // Tutaj zachodzi obsługa zdarzenia
}
0

Przepada ze względu na to, że event handler wykonuje się za długo? Czyli de facto stworzenie nowego wątku trwa zbyt długo?

Poczytaj o wzorcu producent konsument
Przyda się też klasa ConcurrentQueue

0

Właśnie nie do końca wiem dlaczego mi te eventy przepadają (czy jest to wina sterownika czy mojego programu). Sterownik jest raczej pewny, więc zakładam, że coś u mnie może być nie tak.
Rozumiem, że zgodnie z tym co napisałeś mam zrobić sobie kolejkę i dodawać te eventy do kolejki, a potem obsługiwać je we wzorcu?

0

Tak. Można powiedzieć, że Twoim producentem będzie event handler, który będzie dodawał na kolejkę dane, konsument to mechanizm, który cały czas w jednym wątku będzie zdejmował z kolejki elementy i wykonywał dla nich akcje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1