Skip to content

Commit

Permalink
增添aboutIDCM界面
Browse files Browse the repository at this point in the history
修改GCM打开关闭再打开引起IDCM崩溃问题
优化Task代码,修复Taks长时任务RunTime时间不变化问题
修复定时检测登陆问题,原登陆时间检测有问题导致每次15分组去远程登陆变成每次都会去远程登陆
  • Loading branch information
dinghung committed Mar 18, 2015
1 parent 93dc9cc commit 54bf577
Show file tree
Hide file tree
Showing 12 changed files with 403 additions and 229 deletions.
328 changes: 164 additions & 164 deletions IDCM/IDCM.Service.Common/Core/LocalHandlerProxy.cs
Original file line number Diff line number Diff line change
@@ -1,164 +1,164 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Threading;
using IDCM.Data.Base;

namespace IDCM.Service.Common.Core
{
/// <summary>
/// 后台处理方法的任务包装代理实现
/// </summary>
class LocalHandlerProxy
{
/// <summary>
/// 构造方法
/// </summary>
/// <param name="handler"></param>
public LocalHandlerProxy(AbsHandler _handler, Queue<AbsHandler> cascadeHandlers = null)
{
this.handler = _handler;
this.cascadeHandlers = cascadeHandlers;
doWorkTime = DateTime.Now;
}
/// <summary>
/// 后台任务执行方法的主体部分,异步执行代码段!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void worker_DoWork(object sender, DoWorkEventArgs e)
{
doWorkTime = DateTime.Now;
Thread.CurrentThread.Name = handler.GetType().Name;
////////////////////////
List<Object> args = new List<Object>();
if (e.Argument is Object[])
{
args.AddRange((Object[])e.Argument);
}
else
args.Add(e.Argument);
BackgroundWorker worker = (BackgroundWorker)sender;
worker.ReportProgress(0);
e.Result = handler.doWork(worker, e.Cancel, args);
worker.ReportProgress(100);
}
/// <summary>
/// 后台任务执行结束,回调代码段
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
List<Object> args = new List<Object>();
if (e.Result is Object[])
{
args.AddRange((Object[])e.Result);
}
else
args.Add(e.Result);
BackgroundWorker worker = (BackgroundWorker)sender;
//////////////////////////////////////////
handler.complete(worker, e.Cancelled, e.Error, args);
//////////////////////////////
BGWorkerInvoker.removeWorker(worker);
}
/// <summary>
/// 后台任务执行结束后的串联执行任务队列的代理实现代码段
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void worker_cascadeProcess(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled || e.Error != null)
return;
//插队串联部分
if (handler.cascadeHandlers() != null)
{
Queue<AbsHandler> nextHandlers = this.cascadeHandlers;
if (nextHandlers == null)
this.cascadeHandlers = handler.cascadeHandlers();
if (nextHandlers != null)
{
foreach (AbsHandler hand in nextHandlers)
{
cascadeHandlers.Enqueue(hand);
}
}
}
//队头出列,提交执行任务池
if (this.cascadeHandlers != null && this.cascadeHandlers.Count > 0)
{
AbsHandler nextHandler = cascadeHandlers.Dequeue();
List<Object> args = new List<Object>();
if (e.Result is Object[])
{
args.AddRange((Object[])e.Result);
}
else
args.Add(e.Result);
BGWorkerInvoker.pushHandler(nextHandler, args, cascadeHandlers);
}
}
/// <summary>
/// 后台任务执行过程中的状态反馈代码段
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
List<Object> args = new List<Object>();
if (e.UserState is Object[])
{
args.AddRange((Object[])e.UserState);
}
else
args.Add(e.UserState);
BackgroundWorker worker = (BackgroundWorker)sender;
handler.progressChanged(worker, e.ProgressPercentage, args);
}

/// <summary>
/// 获取任务代理包装的元处理器实例对象
/// </summary>
/// <returns></returns>
internal AbsHandler getHandler()
{
return handler;
}
/// <summary>
/// 获取任务代理包装的元处理器实例对象名称
/// </summary>
/// <returns></returns>
public string getProxyName()
{
return handler.GetType().Name;
}
/// <summary>
/// 返回运行累计时长
/// 说明:
/// 1.以毫秒为单位
/// 2.计算数值不排除异步运行完成后的存活时间
/// </summary>
/// <returns></returns>
public long getRunningTime()
{
TimeSpan span = DateTime.Now - doWorkTime;
return span.Milliseconds;
}
/// <summary>
/// 任务代理包装的元处理器实例对象
/// </summary>
private AbsHandler handler;
/// <summary>
/// 等待执行的串联执行任务队列
/// </summary>
private Queue<AbsHandler> cascadeHandlers = null;
/// <summary>
/// 用于标记任务执行的起始时间
/// </summary>
private DateTime doWorkTime;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Threading;
using IDCM.Data.Base;

namespace IDCM.Service.Common.Core
{
/// <summary>
/// 后台处理方法的任务包装代理实现
/// </summary>
class LocalHandlerProxy
{
/// <summary>
/// 构造方法
/// </summary>
/// <param name="handler"></param>
public LocalHandlerProxy(AbsHandler _handler, Queue<AbsHandler> cascadeHandlers = null)
{
this.handler = _handler;
this.cascadeHandlers = cascadeHandlers;
doWorkTime = DateTime.Now;
}
/// <summary>
/// 后台任务执行方法的主体部分,异步执行代码段!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void worker_DoWork(object sender, DoWorkEventArgs e)
{
doWorkTime = DateTime.Now;
Thread.CurrentThread.Name = handler.GetType().Name;
////////////////////////
List<Object> args = new List<Object>();
if (e.Argument is Object[])
{
args.AddRange((Object[])e.Argument);
}
else
args.Add(e.Argument);
BackgroundWorker worker = (BackgroundWorker)sender;
worker.ReportProgress(0);
e.Result = handler.doWork(worker, e.Cancel, args);
worker.ReportProgress(100);
}
/// <summary>
/// 后台任务执行结束,回调代码段
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
List<Object> args = new List<Object>();
if (e.Result is Object[])
{
args.AddRange((Object[])e.Result);
}
else
args.Add(e.Result);
BackgroundWorker worker = (BackgroundWorker)sender;
//////////////////////////////////////////
handler.complete(worker, e.Cancelled, e.Error, args);
//////////////////////////////
BGWorkerInvoker.removeWorker(worker);
}
/// <summary>
/// 后台任务执行结束后的串联执行任务队列的代理实现代码段
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void worker_cascadeProcess(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled || e.Error != null)
return;
//插队串联部分
if (handler.cascadeHandlers() != null)
{
Queue<AbsHandler> nextHandlers = this.cascadeHandlers;
if (nextHandlers == null)
this.cascadeHandlers = handler.cascadeHandlers();
if (nextHandlers != null)
{
foreach (AbsHandler hand in nextHandlers)
{
cascadeHandlers.Enqueue(hand);
}
}
}
//队头出列,提交执行任务池
if (this.cascadeHandlers != null && this.cascadeHandlers.Count > 0)
{
AbsHandler nextHandler = cascadeHandlers.Dequeue();
List<Object> args = new List<Object>();
if (e.Result is Object[])
{
args.AddRange((Object[])e.Result);
}
else
args.Add(e.Result);
BGWorkerInvoker.pushHandler(nextHandler, args, cascadeHandlers);
}
}
/// <summary>
/// 后台任务执行过程中的状态反馈代码段
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
List<Object> args = new List<Object>();
if (e.UserState is Object[])
{
args.AddRange((Object[])e.UserState);
}
else
args.Add(e.UserState);
BackgroundWorker worker = (BackgroundWorker)sender;
handler.progressChanged(worker, e.ProgressPercentage, args);
}

/// <summary>
/// 获取任务代理包装的元处理器实例对象
/// </summary>
/// <returns></returns>
internal AbsHandler getHandler()
{
return handler;
}
/// <summary>
/// 获取任务代理包装的元处理器实例对象名称
/// </summary>
/// <returns></returns>
public string getProxyName()
{
return handler.GetType().Name;
}
/// <summary>
/// 返回运行累计时长
/// 说明:
/// 1.以毫秒为单位
/// 2.计算数值不排除异步运行完成后的存活时间
/// </summary>
/// <returns></returns>
public long getRunningTime()
{
TimeSpan span = DateTime.Now - doWorkTime;
return span.Ticks;
}
/// <summary>
/// 任务代理包装的元处理器实例对象
/// </summary>
private AbsHandler handler;
/// <summary>
/// 等待执行的串联执行任务队列
/// </summary>
private Queue<AbsHandler> cascadeHandlers = null;
/// <summary>
/// 用于标记任务执行的起始时间
/// </summary>
private DateTime doWorkTime;
}
}
1 change: 1 addition & 0 deletions IDCM/IDCM.Service.Common/GCMDAM/SignExecutor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ public static AuthInfo SignIn(string username, string password, bool autoLogin =
auth.Username = username;
auth.Password = password;
auth.autoLogin = autoLogin;
auth.Timestamp = DateTime.Now.Ticks;
}
return auth;
}
Expand Down
4 changes: 4 additions & 0 deletions IDCM/IDCM.Service/UIM/GCMItemsLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ private static void showDataItems(StrainListPage slp, DataGridView itemDGV, Dict
DGVAsyncUtil.syncAddRow(itemDGV, null, dgvrIdx);
loadedNoter.Add(valMap["id"], dgvrIdx);
}
else if(dgvrIdx >= itemDGV.RowCount)
{
DGVAsyncUtil.syncAddRow(itemDGV, null, dgvrIdx);
}
foreach (KeyValuePair<string, string> entry in valMap)
{
//if itemDGV not contains Column of entry.key
Expand Down
22 changes: 11 additions & 11 deletions IDCM/IDCM/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,22 @@
<add key="StrainNumber" value="strain_number" />

<!--帮助文档资源定位-->
<add key="HelpBase" value="http://localhost:8080/IDCMHelp" />
<!--<add key="HelpBase" value="http://localhost:8080/IDCMHelp" />-->
<!-- GCM用户登录请求资源地址 -->
<!-- <add key="SignInUri" value="http://124.16.144.48:81/api/login?username={0}&amp;password={1}" />-->
<add key="SignInUri" value="http://localhost:789/api/login?username={0}&amp;password={1}" />
<add key="SignInUri" value="http://124.16.144.48:81/api/login?username={0}&amp;password={1}" />
<!--<add key="SignInUri" value="http://localhost:789/api/login?username={0}&amp;password={1}" />-->
<!-- GCM用户签出请求资源地址 -->
<!-- <add key="SignOffUri" value="http://124.16.144.48:81/api/logout;jsessionid={0}" />-->
<add key="SignOffUri" value="http://localhost:789/api/logout;jsessionid={0}" />
<add key="SignOffUri" value="http://124.16.144.48:81/api/logout;jsessionid={0}" />
<!--<add key="SignOffUri" value="http://localhost:789/api/logout;jsessionid={0}" />-->
<!-- GCM菌种列表信息查询请求资源地址 -->
<!-- <add key="StrainListUri" value="http://124.16.144.48:81/api/strains/list;jsessionid={0}?currentPage={1}&amp;strainnumber={2}&amp;strainname={3}" />-->
<add key="StrainListUri" value="http://localhost:789/api/strains/list;jsessionid={0}?currentPage={1}&amp;strainnumber={2}&amp;strainname={3}" />
<add key="StrainListUri" value="http://124.16.144.48:81/api/strains/list;jsessionid={0}?currentPage={1}&amp;strainnumber={2}&amp;strainname={3}" />
<!--<add key="StrainListUri" value="http://localhost:789/api/strains/list;jsessionid={0}?currentPage={1}&amp;strainnumber={2}&amp;strainname={3}" />-->
<!-- GCM菌种保藏记录详细信息请求资源地址 -->
<!-- <add key="StrainViewUri" value="http://124.16.144.48:81/api/strains/view;jsessionid={0}?id={1}" />-->
<add key="StrainViewUri" value="http://localhost:789/api/strains/view;jsessionid={0}?id={1}" />
<add key="StrainViewUri" value="http://124.16.144.48:81/api/strains/view;jsessionid={0}?id={1}" />
<!--<add key="StrainViewUri" value="http://localhost:789/api/strains/view;jsessionid={0}?id={1}" />-->
<!-- GCM菌种保藏记录批量导入请求资源地址 -->
<!-- <add key="XMLImportUri" value="http://124.16.144.48:81/api/xmlimport;jsessionid={0}" />-->
<add key="XMLImportUri" value="http://localhost:789/api/xmlimport;jsessionid={0}" />
<add key="XMLImportUri" value="http://124.16.144.48:81/api/xmlimport;jsessionid={0}" />
<!--<add key="XMLImportUri" value="http://localhost:789/api/xmlimport;jsessionid={0}" />-->

<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
Expand Down
Loading

0 comments on commit 54bf577

Please sign in to comment.