Здравствуйте!
Помогите, пожалуйста, решить одну проблемку.
Мне необходимо, чтобы в двух разных потоках параллельно производилась запись в массив и чтение с данного массива.
Дак вот, у меня возникает проблема обращения к данному массиву и необходимо делать блокировки, но не могу понять как это сделать.
Помогите, пожалуйста, решить одну проблемку.
Мне необходимо, чтобы в двух разных потоках параллельно производилась запись в массив и чтение с данного массива.
Дак вот, у меня возникает проблема обращения к данному массиву и необходимо делать блокировки, но не могу понять как это сделать.
Код:
private: array<Class^> ^arr;
...
private: Thread ^writeThread;
private: Thread ^readThread;
private: System::Void button_Click(System::Object^ sender, System::EventArgs^ e) {
this->writeThread =
gcnew Thread(gcnew ThreadStart(this, &Form::ThreadProcSafeWrite));
this->readThread =
gcnew Thread(gcnew ThreadStart(this, &Form::ThreadProcSafeRead));
this->writeThread->Start();
this->readThread->Start();
}
private: void ThreadProcSafeWrite() {
...
arr[i] = data;
...
}
private: void ThreadProcSafeRead() {
...
Save(arr[i]);
...
}