메소드에 대한 호출을 병렬로 만들고 싶습니다. 이 방법에서는 몇 가지 값 (매우 빠름)을 계산하고이 계산 값을 데이터베이스 테이블에 씁니다.스레드가 MySqlCommand.ExecuteNonQuery()에 걸렸습니다.
따라서 내가 계산 잠시 후 스레드 풀
ThreadPool.QueueUserWorkItem((state) => {
method();
});
를 사용 (결정하지, 이런 시간이 때로는 몇 시간 후에, 때로는 몇 분 후, 다름) 스레드 풀 전체는 아니지만 메서드()의 스레드가 있지만 내 mysql 클래스의 스레드는 MySqlCommand.ExecuteNonQuery
을 호출합니다.
누구나 이것을 피하는 방법을 알고 있습니까? mysql 클래스의 문서에서 실행중인 쿼리를 종료 할 수는 없지만 이러한 문제를 피하는 방법을 찾았습니까?
이제 목록에 쿼리를 추가하고 매분마다이 목록을 보내십시오. 그러나 이제는 내 스레드 내에서 목록을 채우고 1 분 후에 쿼리에서 목록의 열거 형이 스레드 내에서 변경되면 어떻게됩니까? 나는 잠금 장치 (목록) {// 쿼리 보내기}를 시도했으나 작동하지 않습니다. –
오 ... 잠금 메커니즘에 대한 오해가 있었다고 생각합니다. 목록을 보낼 때와 목록을 채울 때 다른 개체를 잠급니다. –