Хорошо, это был такой длинный день, что я просто буду искать информацию от экспертов.Thread saftey на странице ASPX Codebehind
Допустим, я делаю это:
public class ZipFiles : Page
{
Hashtable hs;
, чтобы начать с, то есть у меня есть переменная-член в этом классе.
Тогда у меня есть строки, я называю в OnLoad, как:
ManagedFile mf = new ManagedFile(site);
mf.ID = docID;
mf.Load();
hs.Add(Path.GetFileName(mf.URL), mf);
в порядке, и, наконец, у меня есть метод WriteDelegate от DotNetZip, который делает это:
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 в качестве своего ключа (там никогда не будет двух одинаковых имен файлов), а затем в WriteDelegate я вывожу их, чтобы получить массив Byte [] за объектом MF.
Является ли это reciepe для катастрофы? Будут ли смешиваться хеш-таблицы от разных пользователей на нашем сайте, а связи вселенной расходятся?
Спасибо за помощь заранее! Это 5:09 вечера, и я закончил день. Жена делает бискикские куриные пальцы сегодня вечером на ужин. Они великолепны, попросите reciepe, если хотите. Плюс у нее есть наши 2 мальчика (6 и 4) дома, которые только что вернулись в школу впервые с ПОСЛЕДНЕГО понедельника. Это будет 2 уставших мальчика и 1 усталая мама, когда я буду кататься после 5:40 сегодня!
В дополнение к нижеследующим ответам .... Я возьму этот рецепт, пожалуйста. :) – asawyer