private void SetProgBar(int vv) { if (this.pgbCopy.InvokeRequired) { SetProgCallBack del = new SetProgCallBack(SetProgBar); this.Invoke(del, new object[] { vv }); } else { this.pgbCopy.Value = vv; } }
private void SetProgBar(int Test) { if (this.progressBar1.InvokeRequired) { SetProgCallBack dele = new SetProgCallBack(SetProgBar); this.Invoke(dele, new object[] { Test }); } else { this.progressBar1.Value = Test; } }
// t1 스레드에서 만들어진 값(vv)을 메인스레드(폼)의 진행바컨트롤에 지정하기 위한 메소드 private void SetProgBar(int progValue) { // 서로다른 프로세스에서 객체를 크로스로 접근하면 예외가 발생하므로 이를 해결하기 // 위해서 Invoke 메소드 사용하게 된다. // 진행바가 현재 Invoke가 필요한 상태인지 파악하여 필요하다면 대기상태에 있다가 // 접근가능할 때 백그라운드 작업을 진행하고, 필요한 상태가 아니라면 // 진행바의 해당 속성에 바로 대입한다. if (this.progressBar1.InvokeRequired) { // 델리깃 생성 SetProgCallBack dele = new SetProgCallBack(SetProgBar); // 대기상태에 있다가 접근가능한 상태일 때 SetProgBar 간접호출 this.Invoke(dele, progValue); } else { this.progressBar1.Value = progValue; } }
private void SetServProgBar(int vv) { if (this.progressBarAsyncServFileTrans.InvokeRequired) { SetProgCallBack dele = new SetProgCallBack(SetServProgBar); if (this.IsHandleCreated) { this.Invoke(dele, new object[] { vv }); } } else { if (vv > 100) { vv = 100; } this.progressBarAsyncServFileTrans.Value = vv; } }
private void SetProgBar(int valCurrent) { if (this.Dispatcher.Thread != Thread.CurrentThread) { SetProgCallBack dele = new SetProgCallBack(SetProgBar); Dispatcher.Invoke(dele, new object[] { valCurrent }); } else this.ProgressBar1.Value = valCurrent; }
private void GetFile(string copydirectory, string userselectdirectory) { if (this.Dispatcher.Thread != Thread.CurrentThread) { SetProgCallBack dele = new SetProgCallBack(GetFile); Dispatcher.Invoke(dele, new object[] { copydirectory, userselectdirectory }); } else { //string path = new FileInfo(copydirectory).Directory.ToString(); string realpath = userselectdirectory; DirectoyProgress bar = new DirectoyProgress(copydirectory, realpath, 0); bar.deletefile += deletecompletefile; bar.Show(); } }