我正在使用Delphi匿名线程来执行代码.在线程的中间,必须进行一些GUI更新,一些标签更改等.
如果我从线程内部执行此操作,则会发生更改,但一旦线程停止.他们消失了,然后应用程序给我旧的窗口处理程序错误...(这是预期的)
System Error. Code:1400. Invalid window handle
我尝试使用该Syncronize(updateui);方法来执行更改(将它们移动到一个单独的函数),但是我在syncronize上得到一个错误,E2066 Missing operator or semicolon这对我来说根本没有意义......
我一页又一页地搜索过,他们似乎都这么称呼它,但是当我这样做时,我得到了上述错误......
我说错了吗?
码:
TThread.CreateAnonymousThread(
procedure
begin
main.Enabled:=false;
Loading.show;
label52.caption:=getfieldvalue(datalive.users,'users','credit_amount','user_id',user_id );
CoInitialize(nil);
if (length(maskedit1.Text)=maskedit1.MaxLength) and (pingip(serverip)=true) then
begin
if (strtofloat(label52.caption)>0) then
begin
....do some work....
Synchronize(updateui);
end
else Showmessage('Insufficient Funds. Please add funds to continue.');
end
else if (length(maskedit1.Text)<>maskedit1.MaxLength) then
begin
Showmessage('ID Number not long enough.');
end
else
begin
Showmessage('Could not connect to the server. Please check your internet connection and try again.');
end; …Run Code Online (Sandbox Code Playgroud) 我有一个Activity,它在框架布局中托管片段.如果我将显示的片段更改为另一个片段,则片段不会添加到后台,因此使用"后退"按钮会立即关闭应用而不是导航回来(OnBackPressed中的FragmentManager.BackStackEntryCount始终为0) ()-打回来).
在托管片段的"MainActivity"的ViewModel中,我通过ShowViewModel <> - 方法显示片段:
public class MainViewModel : MvxViewModel
{
public IMvxCommand ShowHomeCommand
{
get { return new MvxCommand(ShowHomeExecuted); }
}
private void ShowHomeExecuted()
{
ShowViewModel<HomeViewModel>();
}
}
Run Code Online (Sandbox Code Playgroud)
fragment-class有一个注释,用于将ViewModel分配给host-activity:
[MvxFragment(typeof(MainViewModel), Resource.Id.fragment_container)]
[Register("namespace.of.HomeFragment")]
Run Code Online (Sandbox Code Playgroud)
我在Setup-class中使用默认的AndroidViewPresenter:
protected override IMvxAndroidViewPresenter CreateViewPresenter()
{
var mvxFragmentsPresenter = new MvxFragmentsPresenter(AndroidViewAssemblies);
Mvx.RegisterSingleton<IMvxAndroidViewPresenter>(mvxFragmentsPresenter);
return mvxFragmentsPresenter;
}
Run Code Online (Sandbox Code Playgroud)
我期望在MvxFragment-Attribut或MvxFragment类中有一个参数"AddToBackstack"或类似的东西但是没有这样的东西.我是否遗漏了某些东西,或者目前在MvvmCross 4.0的新片段机制中是否支持后备栈?
我最近得到了一个工具的修复错误的请求,该工具是由一个离开公司的同事创建的.
这个工具基本上是一个基于.NET-Framework 4的WinForms应用程序.它一般工作正常,但以下情况会导致随机崩溃:
如果程序在后台(没有焦点)并且在一段时间后被用户带到前台(聚焦/激活),则它会在消息"ToolName已停止工作"时崩溃.
如果在调试器下执行,则ToolName将替换为"vshost.exe".没有显示其他错误消息.我不知道哪行代码会导致错误.
一些其他信息:
"当前的调试器配置为调试使用Microsoft .NET Framework v 1.0,1.1或2.0的代码.从.NET Framework v4.0代码中抛出未处理的异常."
我试图通过添加全局异常处理程序来获取有关崩溃的更多信息,这些异常处理程序应该创建一个带有堆栈跟踪的MessageBox但它们不会触发:
[STAThread]
static void Main()
{
AppDomain currentDomain = default(AppDomain);
currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += GlobalUnhandledExceptionHandler;
System.Windows.Forms.Application.ThreadException += GlobalThreadExceptionHandler;
// ...
}
private static void GlobalUnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = default(Exception);
ex = (Exception)e.ExceptionObject;
MessageBox.Show(ex.Message + "\n" + ex.StackTrace);
}
private static void GlobalThreadExceptionHandler(object sender, System.Threading.ThreadExceptionEventArgs e)
{ …Run Code Online (Sandbox Code Playgroud) 诸如Google Cloud Messaging(GCM)之类的推送通知服务提供了一项特殊功能:它们能够唤醒处于空闲模式的设备。
关于电池寿命,采用哪种方式通过推连接唤醒设备?我的第一个假设是,即使设备的处理器处于睡眠状态,无线电的连接仍处于活动状态。在收到推送消息的情况下,无线电会通过中断唤醒处理器,并启动android处理该推送消息的意图。
但是,有像“ OpenPush”这样的第三方推送服务提供了相同的功能,这使我的假设看起来不完整或错误。还是这些服务只是多个供应商(Google,Apple)的推送系统的抽象,并且是以本机方式集成的服务的桥梁?
我们正在将项目从.NET-Framework 3.0升级到4.5.代码升级成功,现在我们计划将应用程序发布到我们的服务器.
我们的关注:
服务器仅安装了.NET-Framework版本4.0-版本,而不是版本4.5.
这会是一个问题吗?