好吧,今天过了漫长的一天,我只是在寻找专家的意见。ASPX代码隐藏页面的线程安全
比方说,我这样做:
public class ZipFiles : Page
{
Hashtable hs;
与启动,这意味着我必须在这个类的成员变量。
然后我行我呼吁在onload,如:
ManagedFile mf = new ManagedFile(site);
mf.ID = docID;
mf.Load();
hs.Add(Path.GetFileName(mf.URL), mf);
还好,最后我从DotNetZip一个WriteDelegate方法做这个:
private void WriteEntry(String filename, Stream output)
{
ManagedFile value = (ManagedFile)hs[filename];
using (MemoryStream ms = new MemoryStream(value.GetBinary()))
{
ms.WriteTo(output);
}
}
你可以看到,在onload我将所有mf对象放入散列表中,FileName作为它们的关键字(永远不会有2个相同的文件名),然后在WriteDelegate中弹出它们以获取MF对象后面的Byte []数组。
这是灾难的收件人吗?我们网站上来自不同用户的哈希表是否会混杂在一起,宇宙的联系是否分裂?
感谢您的帮助!现在是5点09分,我完成了一天的工作。晚饭时,妻子正在制作鸡尾酒。他们很棒,如果你愿意的话,可以要求收件人。另外,她还有我们的两个男孩(6岁和4岁),这是自上周一以来首次回到学校。今晚5:40后滚进来的话,会有2个累了的男孩和1个累了的妈妈!
除了下面的答案....我会采取该配方请。 :) – asawyer 2011-02-07 22:22:34