using System;
using System.Windows .Forms ;
using System.Threading ;
class MainForm : Form {
TextBox textBox;
Thread thread;
volatile bool abortRequest = false ;
volatile bool activeBackground = false ;
void DoBackgroundWork( ) {
activeBackground = true ;
while ( ! abortRequest) {
Thread.Sleep ( 1000 ) ;
this.BeginInvoke ( new EventHandler( ( sender, e) => { textBox.AppendText ( "." ) ; } ) ,
new object [ ] { this, EventArgs.Empty } ) ;
}
this.Invoke ( new EventHandler( ( sender, e) => {
textBox.AppendText ( Environment.NewLine + "UI同期が必要な終了処理" ) ;
activeBackground = false ;
this.Close ( ) ;
} ) , new object [ ] { this, EventArgs.Empty } ) ;
}
public MainForm( ) {
thread = new Thread( DoBackgroundWork) ;
textBox = new TextBox( ) { Multiline= true , Dock = DockStyle.Fill } ;
this.Controls .Add ( textBox) ;
this.Load += ( sender, e) => { thread.Start ( ) ; } ;
this.Closing += ( sender, e) => {
if ( activeBackground) {
abortRequest = true ;
e.Cancel = true ;
}
} ;
}
}
class Program {
static void Main( ) {
Application.Run ( new MainForm( ) ) ;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uV2luZG93cy5Gb3JtczsKdXNpbmcgU3lzdGVtLlRocmVhZGluZzsKCmNsYXNzIE1haW5Gb3JtIDogRm9ybSB7CiAgVGV4dEJveCB0ZXh0Qm94OwogIFRocmVhZCB0aHJlYWQ7CiAgdm9sYXRpbGUgYm9vbCBhYm9ydFJlcXVlc3QgPSBmYWxzZTsKICB2b2xhdGlsZSBib29sIGFjdGl2ZUJhY2tncm91bmQgPSBmYWxzZTsKICB2b2lkIERvQmFja2dyb3VuZFdvcmsoKSB7CiAgICBhY3RpdmVCYWNrZ3JvdW5kID0gdHJ1ZTsKICAgIHdoaWxlICghYWJvcnRSZXF1ZXN0KSB7CiAgICAgICBUaHJlYWQuU2xlZXAoMTAwMCk7CiAgICAgICB0aGlzLkJlZ2luSW52b2tlKG5ldyBFdmVudEhhbmRsZXIoKHNlbmRlciwgZSkgPT4geyB0ZXh0Qm94LkFwcGVuZFRleHQoIi4iKTsgfSksCiAgICAgICAgIG5ldyBvYmplY3QgW10geyB0aGlzLCBFdmVudEFyZ3MuRW1wdHkgfSk7CiAgICB9CiAgICB0aGlzLkludm9rZShuZXcgRXZlbnRIYW5kbGVyKChzZW5kZXIsIGUpID0+IHsKICAgICAgICB0ZXh0Qm94LkFwcGVuZFRleHQoRW52aXJvbm1lbnQuTmV3TGluZSArICJVSeWQjOacn+OBjOW/heimgeOBque1guS6huWHpueQhiIpOwogICAgICAgIGFjdGl2ZUJhY2tncm91bmQgPSBmYWxzZTsKICAgICAgICB0aGlzLkNsb3NlKCk7CiAgICAgICB9KSwgbmV3IG9iamVjdCBbXSB7IHRoaXMsIEV2ZW50QXJncy5FbXB0eSB9KTsKICB9CiAgcHVibGljIE1haW5Gb3JtKCkgewogICAgdGhyZWFkID0gbmV3IFRocmVhZChEb0JhY2tncm91bmRXb3JrKTsKICAgIHRleHRCb3ggPSBuZXcgVGV4dEJveCgpIHsgTXVsdGlsaW5lPSB0cnVlLCBEb2NrID0gRG9ja1N0eWxlLkZpbGwgfTsKICAgIHRoaXMuQ29udHJvbHMuQWRkKHRleHRCb3gpOwogICAgdGhpcy5Mb2FkICs9IChzZW5kZXIsIGUpID0+IHsgdGhyZWFkLlN0YXJ0KCk7IH07CiAgICB0aGlzLkNsb3NpbmcgKz0gKHNlbmRlciwgZSkgPT4gewogICAgICBpZiAoYWN0aXZlQmFja2dyb3VuZCkgeyAKICAgICAgICBhYm9ydFJlcXVlc3QgPSB0cnVlOwogICAgICAgIGUuQ2FuY2VsID0gdHJ1ZTsKICAgICAgfQogICAgfTsKICB9Cn0KY2xhc3MgUHJvZ3JhbSB7CiBzdGF0aWMgdm9pZCBNYWluKCkgewogICBBcHBsaWNhdGlvbi5SdW4obmV3IE1haW5Gb3JtKCkpOwogfQp9Cg==
compilation info
prog.cs(2,14): error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
prog.cs(6,3): error CS0246: The type or namespace name `TextBox' could not be found. Are you missing a using directive or an assembly reference?
Compilation failed: 2 error(s), 0 warnings
stdout