오류 1 "obj\x86\Debug\ConsoleApplication9.exe" 파일을 "bin\Debug\ConsoleApplication9.exe"(으)로 복사할 수 없습니다.

'bin\Debug\ConsoleApplication9.exe' 파일은 다른 프로세스에서 사용 중이므로 프로세스에서 액세스할 수 없습니다.

 

.net framework 4.0 을 사용중이고 C# 으로 프로그래밍을 햇습니다.

콘솔 프로젝트를 열어서 쓰레드 프로그래밍을 하는데 현재 계속적인 오류가 발생합니다.

문제는 콘솔 프로젝트에서만 그런것이 아니라 Silverlight, C++ 을 할 때도 이런 오류가 발생합니다.

쓰레드 프로그래밍 만의 문제가 아닙니다.

다음에 조치가 이뤄졌지만 모두 허사였습니다.

1. Ctrl + Alt + Delete 키를 눌러 프로세스 종료도 해보았고,

2. 쓰레드를 종료하는 것도 사용해 보았으며,

3. Debug 파일 삭제가 되지 않는 문제가 있어서 도구 > 폴더옵션 > 보기 로 가서 [모든폴더를 원래대로] 라는 버튼을 눌러

폴더 상태도 모두 되돌렸습니다.

다른 글들을 보니 프로젝트 파일들을 복사한 후 프로젝트를 새로 만드는 방법을 강구하는데

시간이 지나면 해결되어 디버깅이 되는 것이 아무래도 Visual Studio 에러 처리이지 않을까? 라는 생각을 했습니다.

혹시 다른 의견이나 지식이 있으신 분들 답글 바랍니다.

 아주 단순한 답글에도 큰 도움이 됩니다. 감사합니다.

혹시 소스를 통해 알아보고자 하는 바가 있으신 분을 위해 소스를 아래와 같이 합니다.

http://www.hanb.co.kr/network/view.html?bi_id=330 에서 참고한 소스이므로 자세한 것은 왼쪽의 링크를 참조해주시기

바랍니다.

using System;
using System.Threading;

public class AppMain
{
private int counter = 0;

public static void Main()
{
AppMain app = new AppMain();

app.DoTest();
}

public void DoTest()
{
Thread t1 = new Thread(new ThreadStart(Incrementer));
Thread t2 = new Thread(new ThreadStart(Decrementer));

t1.Start();
t2.Start();
}

private void Incrementer()
{
Monitor.TryEnter(this);

try
{
while (counter < 10)
{
Console.WriteLine("Incrementer : " + counter.ToString());
counter++;
}
} // end of try

finally
{
//Monitor.Exit(this);
} // end of finally
} // end of Incrementer

private void Decrementer()
{
Monitor.TryEnter(this);

try
{
while (counter > 0)
{
Console.WriteLine("Decrementer : " + counter.ToString());
counter--;
}
} // end of try

finally
{
//Monitor.Exit(this);
} // end of finally
} // end of Decrementer
}