C# में: Volatile, Interlocked या lock — सरल फ़्लैग की थ्रेड-सुरक्षा के लिए क्या चुनें?
नमस्ते साथियों! मैं एक शुरुआती C# डेवलपर हूँ और मल्टीथ्रेडिंग को समझने की कोशिश कर रहा हूँ। मेरे पास एक सरल क्लास है जो एक बैकग्राउंड थ्रेड शुरू करता है। थ्रेड को तब तक काम करना चाहिए जब तक फ़्लैग `_isRunning` true है। दूसरा थ्रेड (जैसे UI) इस फ़्लैग को false सेट कर सकता है ताकि बैकग्राउंड काम रुक जाए।
यहाँ सरलीकृत कोड है:
```csharp
public class Worker
{
private bool _isRunning = true;
public void Start()
{
Task.Run(() =>
{
while (_isRunning)
{
// कुछ काम
Console.WriteLine("Working...");
Thread.Sleep(100);
}
});
}
public void Stop()
{
_isRunning = false;
}
}
```
मैंने पढ़ा है कि bool का सरल read/write स्पष्ट रूप से