我试图在Ubuntu 14.04和Raspian (Raspberry Pi 2B)
中使用系统调用“sleep”来延迟代码执行,例如5秒然而,令人惊讶的是,在Delay期间系统前面调用“sleep”的所有代码在运行时都没有执行。以下是导致问题的简单代码:
using System;
using Gtk;
using Mono.Unix.Native;
public partial class MainWindow: Gtk.Window
{
public MainWindow () : base (Gtk.WindowType.Toplevel)
{
Build ();
entry1.Alignment = 0.5f;
// This code is not executed:
double result = Math.Pow (2.0, 2.0);
entry1.Text = result.ToString ();
// End of code not executed
// Code executed:
Delay (5);
entry1.Text = "Button-A";
}
protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}
private Int16 Delay (UInt32 value)
{
Mono.Unix.Native.Syscall.sleep (value);
return 0;
}
}
我是否误解了Linux的基本内容或者我是否面临编译错误?感谢您对该主题的任何提示!
答案 0 :(得分:0)
您在主UI线程上阻止。
而不是使用系统执行程序阻止/延迟执行,而是使用await Task.Delay(5000);
。
Private Sub Text4_AfterUpdate()
DoCmd.ApplyFilter , "[SUMMARY.ORIGIN_CODE]='" & Me![Text4] & "'"
End Sub