Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#on.net Mobile Framework-Windows窗体属性赢得';不变_C#_.net_Windows Mobile - Fatal编程技术网

C#on.net Mobile Framework-Windows窗体属性赢得';不变

C#on.net Mobile Framework-Windows窗体属性赢得';不变,c#,.net,windows-mobile,C#,.net,Windows Mobile,我正在编写一个需要用户身份验证的c#应用程序 当用户点击“登录”按钮时,很多事情都是在后台完成的,但我很难通知用户发生了什么事情,而且程序不仅仅是冻结的 我有一些隐藏的文本字段,我想在他们登录后显示出来,而这些东西正在运行,但我似乎无法让它显示出来 基本上,当用户点击“登录”按钮时,它会检查他们的凭据是否正确,然后会显示消息,然后可能会运行其他一些函数,然后会显示不同的表单 检查凭据后,我知道用户是有效的,我尝试运行以下操作: please_wait.Visible = true; 但是当它到

我正在编写一个需要用户身份验证的c#应用程序

当用户点击“登录”按钮时,很多事情都是在后台完成的,但我很难通知用户发生了什么事情,而且程序不仅仅是冻结的

我有一些隐藏的文本字段,我想在他们登录后显示出来,而这些东西正在运行,但我似乎无法让它显示出来

基本上,当用户点击“登录”按钮时,它会检查他们的凭据是否正确,然后会显示消息,然后可能会运行其他一些函数,然后会显示不同的表单

检查凭据后,我知道用户是有效的,我尝试运行以下操作:

please_wait.Visible = true;
但是当它到达代码中的那个点时,它不会改变。 我试过穿线,看看是否有帮助。我没有调用上面的行,而是启动一个线程来执行它

那也不行。这个领域仍然没有出现

如果我在启动线程或更改Visible属性后退出函数right,它就可以正常工作


如何使其正常工作,并在更改后运行更多代码?

问题不在于您需要从后台线程更新UI。相反,您应该在后台线程中执行长时间运行的任务,并将更新编组到前台。这通常通过带有进度通知的
BackgroundWorker
完成(例如,在进度条上)


基本上,您的UI前台线程在工作时被加载或阻止,因此它不会处理消息队列中的消息来更新您的用户界面。

问题不在于您需要从后台线程更新UI。相反,您应该在后台线程中执行长时间运行的任务,并将更新编组到前台。这通常通过带有进度通知的
BackgroundWorker
完成(例如,在进度条上)


基本上,您的UI前台线程在工作时被加载或阻止,因此它不会处理消息队列中的消息来更新您的用户界面。

除了Greg建议的内容(如果您还没有这样做,这当然是第一步)之外,您可能还需要放弃一些功能


如果您正在对调度程序征税,那么在工作程序完成之前,UI更新(优先级很低)可能会被抢占。添加Application.DoEvents(或者在后台线程中添加Thread.Sleep(1))可以给UI一点时间来绘制调度程序。

根据Greg的建议(如果您还没有这样做,这当然是第一步),您可能还需要放弃一些quantum


如果您正在对调度程序征税,那么在工作程序完成之前,UI更新(优先级很低)可能会被抢占。添加Application.DoEvents(或者后台线程中的Thread.Sleep(1))可以给UI一点时间来绘制调度程序。

您是否尝试添加对Application.DoEvents()的调用?这是一个黑客程序,但有时您只需要它。

您是否尝试过向Application.DoEvents()添加调用?这是一个黑客程序,但有时你只需要它。

这个调用上面的代码是什么?这似乎是阻碍。正如下面的海报所说,您需要在后台完成工作(检查细节),在主线程中完成UI工作。这个调用上面的代码是什么?这似乎是阻碍。正如下面的海报所说,您需要在后台完成工作(检查细节),在主线程中完成UI工作。谢谢。这似乎是最好的解决办法。但是,BackgroundWorker在Compact框架上不可用(我意识到我在问题中称之为“移动框架”——可能会引起一些混乱),因此我使用BackgroundWorker的这个实现:谢谢。这似乎是最好的解决办法。但是,BackgroundWorker在Compact框架上不可用(我意识到我在问题中称之为“移动框架”-可能会引起一些混乱),因此我使用BackgroundWorker的这个实现: