【发布时间】:2014-11-29 11:10:38
【问题描述】:
我正在处理一个包含父页面的项目,该父页面包含两个连接到其他两个子 asp 页面的 iframe 标记。我需要保护一个时间实例,它应该是这样的:在第一个子页面中它应该被锁定,并且当另一个子 asp 页面从中读取时应该被释放。任何人都可以给我一个建议吗?
[WebMethod]
public static void SetCreatioTimeAndID(DateTime CreationTime, string ID)
{
ResourceProtector.Sem.WaitOne();
SessionHelper.CreationTimeFromEvents = CreationTime;
SessionHelper.EventID = ID;
}
这里是调用该方法的jquery函数:
function EventGrid_ItemSelected(sender, e) {
var item = e.get_item();
var creationTime = item.Data[0][1];
var id = item.Data[10];
PageMethods.SetCreatioTimeAndID(creationTime, id, OnSuccess);
}
function OnSuccess(response, userContext, methodName) {
}
由于我使用的 gridview(ComponentArt 网格)在选择行时没有服务器端事件,因此我必须使用客户端事件来检索选中的行。然后我调用服务器端函数来存储行的日期。如果你喜欢这是整个场景: 当用户在 gridview 上选择一行时,我必须从页面中的 jquery 函数调用服务器函数。问题是这个服务器功能必须是静态的。因此我将它存储在静态 DateTime 对象中,因此当用户按下按钮时,将加载有关该 DateTime 对象的信息。问题是如果另一个客户端连接到服务器并选择一行,我担心 DateTime 对象是
【问题讨论】:
-
这个实例到底是什么,你是如何分享它的?
-
它是一个 DateTime 对象。当用户单击网格视图中的一行时,其中一个 asp 页面设置它。我希望这个日期时间对象保持不变,直到它在另一个 asp 页面中的方法中使用。它因为如果另一个客户端在使用这个 DateTime 实例之前连接,那么新客户端这次不能搞砸。所以使用 get s wrong inf back
-
id 想知道的另一件事是,如果不同的客户端连接到 asp 页面;他们有自己的线程来运行吗?我是说服务器是否为具有全新实例的新客户端创建了一个新线程?
-
每个 request 都有自己的线程。您如何共享此 DateTime 对象?
-
这是整个情况。当用户在 gridview 上选择一行时,我必须从页面中的 jquery 函数调用服务器函数。问题是这个服务器功能必须是静态的。因此我将它存储在静态 DateTime 对象中,因此当用户按下按钮时,将加载有关该 DateTime 对象的信息。问题是如果另一个客户端连接到服务器并选择一行,我担心 DateTime 对象被覆盖
标签: c# asp.net multithreading semaphore protected-resource