gxc
2020-02-28 66a9965c44ecc32a6696abca876ab9d1cd091584
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlThreadLogic.cs
@@ -36,7 +36,7 @@
        /// <summary>
        /// 子线程执行(创建这个东西,是为了Log出力)
        /// </summary>
        public void RunThread(Action action)
        public void RunThread(Action action, ShowErrorMode mode = ShowErrorMode.YES)
        {
            new System.Threading.Thread(() =>
            {
@@ -49,17 +49,18 @@
                }
                catch (Exception ex)
                {
                    Application.RunOnMainThread(() =>
                    if (mode == ShowErrorMode.YES)
                    {
                        //出现未知错误,数据丢失
                        var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnknownErrorAndDataLost));
                        alert.Show();
                    });
                        Application.RunOnMainThread(() =>
                        {
                            //出现未知错误,数据丢失
                            var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
                            alert.Show();
                        });
                    }
                    //Log出力
                    string msg = "当前激活的界面[" + nowFormId + "]\r\n";
                    msg += ex.Message + "\r\n";
                    msg += ex.TargetSite.ToString();
                    HdlLogLogic.Current.WriteLog(-1, msg);
                    string msg = "当前激活的界面[" + nowFormId + "]";
                    HdlLogLogic.Current.WriteLog(ex, msg);
                }
            })
            { IsBackground = true }.Start();
@@ -68,7 +69,7 @@
        /// <summary>
        /// 执行运行子线程里面的主线程(创建这个东西,是为了Log出力)
        /// </summary>
        public void RunMainInThread(Action action)
        public void RunMainInThread(Action action, ShowErrorMode mode = ShowErrorMode.YES)
        {
            new System.Threading.Thread(() =>
            {
@@ -83,14 +84,15 @@
                    }
                    catch (Exception ex)
                    {
                        //出现未知错误,数据丢失
                        var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnknownErrorAndDataLost));
                        alert.Show();
                        if (mode == ShowErrorMode.YES)
                        {
                            //出现未知错误,数据丢失
                            var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
                            alert.Show();
                        }
                        //Log出力
                        string msg = "当前激活的界面[" + nowFormId + "]\r\n";
                        msg += ex.Message + "\r\n";
                        msg += ex.TargetSite.ToString();
                        HdlLogLogic.Current.WriteLog(-1, msg);
                        string msg = "当前激活的界面[" + nowFormId + "]";
                        HdlLogLogic.Current.WriteLog(ex, msg);
                    }
                });
                
@@ -98,6 +100,36 @@
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 执行运行于主线程(创建这个东西,是为了Log出力)
        /// </summary>
        public void RunMain(Action action, ShowErrorMode mode = ShowErrorMode.YES)
        {
            Application.RunOnMainThread(() =>
            {
                //记录起当前界面,虽然似乎没啥用
                string nowFormId = UserCenterResourse.NowActionFormID;
                try
                {
                    action.Invoke();
                    action = null;
                }
                catch (Exception ex)
                {
                    if (mode == ShowErrorMode.YES)
                    {
                        //出现未知错误,数据丢失
                        var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
                        alert.Show();
                    }
                    //Log出力
                    string msg = "当前激活的界面[" + nowFormId + "]";
                    HdlLogLogic.Current.WriteLog(ex, msg);
                }
            });
        }
        #endregion
    }
}