4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
1

Статический список tempMessages для хранения сообщений заполняется мусором

05.08.2012, 19:23. Показов 1220. Ответов 1
Метки нет (Все метки)

Я пишут чат. Я использую статический список tempMessages для хранения сообщений в оперативной памяти.
Но каждый раз при перезапуске приложения студии, список заполняется непонятным мусором. Делаю пошаговую отладку, но не понятно откуда этот мусор берется. Каждый раз, как я запускаю пошаговую отладку статический список tempMessages увеличивает свой размер. Подскажите, почему данный список увеличивается?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public partial class Messages : System.Web.UI.Page
    {
        public static List<string> tempMessages = new List<string>();
        protected void Page_Load(object sender, EventArgs e)
        {
            Message message = new Message();
            message.ReadFromDataBase();
            tempMessages.Add(String.Format("{0}: {1} \n", message.ReceivedDate, message.ReceivedMessage));
            message.DeleteMessageFromDb();
            string formattedText = string.Empty;
            foreach (var tempMessage in tempMessages)
            {
                formattedText += tempMessage;
            }
 
            chatMenu.InnerHtml = formattedText;
        }
    }
 public class Message
    {
        private string sendedMessage;
        private DateTime sendedDate;
        public string ReceivedMessage { get; private set; }
        public DateTime ReceivedDate { get;  private set; }
        private int messageID;
 
        public Message()
        {
 
        }
 
        public Message(string message)
        {
            sendedMessage = message;
            sendedDate = DateTime.Now;
        }
 
        public void SaveToDataBase()
        {
            WebChatEntities webChatDb = new WebChatEntities();
            ChatMessage chatMessage = new ChatMessage()
                                          {
                                              ChMessage = sendedMessage,
                                              MessageDate = sendedDate
                                          };
 
            webChatDb.ChatMessages.AddObject(chatMessage);
            webChatDb.SaveChanges();
        }
 
        public void ReadFromDataBase()
        {
            WebChatEntities webChatDb = new WebChatEntities();
            var result = from chMessage in webChatDb.ChatMessages
                         let maxDate = webChatDb.ChatMessages.Max(message => message.MessageDate)
                         where chMessage.MessageDate == maxDate
                         select new
                                    {
                                        chatMessage = chMessage.ChMessage,
                                        messageDate = chMessage.MessageDate,
                                        ID = chMessage.MessageID
                                    };
            foreach (var message in result)
            {
                ReceivedMessage = message.chatMessage;
                ReceivedDate = message.messageDate;
                messageID = message.ID;
            }
        }
 
        public void DeleteMessageFromDb()
        {
            WebChatEntities webChatDb = new WebChatEntities();
            IEnumerable<ChatMessage> result = from message in webChatDb.ChatMessages
                                              where message.MessageID == messageID
                                              select message;
 
            foreach (ChatMessage chatMessage in result)
            {
                webChatDb.ChatMessages.DeleteObject(chatMessage);
            }
            webChatDb.SaveChanges();
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2012, 19:23
Ответы с готовыми решениями:

Массив заполняется мусором
Здравствуйте! Создал меню, в одном кейсе массив заполняется, а вывести на экран его нужно в...

Строка частично заполняется мусором
У меня стоит задача считать теги из заархивированного zip файла. Я считываю массив byte (1024,...

Матрица заполняется мусором, а нужно нулями. (с++)
Пока наброски, даже без отчистки памяти, но уже на этом этапе не работает не правильно . В итоге...

Половина матрицы заполняется нулями, другая мусором
int EnterArray25(int A, int n,int m) { int i, j; for (i = 0; i &lt; n; i++) { for (j = 0; j...

1
2718 / 2028 / 375
Регистрация: 22.07.2011
Сообщений: 7,686
05.08.2012, 19:47 2
1. потому что статические переменные живут пока жив asp net процесс/пул
2. поскольку они общие для всех сессий - нужна синхронизация при записи в массив.
3. лучше юзать общий кэш.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2012, 19:47
Помогаю со студенческими работами здесь

Список для хранения символа
Нужно написать программу которая будет многократно изменять строку по определенным правилам. В...

Список указателей: При добавлении элемента данные оказывались мусором
Всем привет. Кароче, вот: TR = class (trichedit) protected Rects : TList; ...

Реализовать односвязный список для хранения
Реализовать односвязный список для хранения данных вида: ФИО, группа. Обеспечить выполнение...

Односвязный список для хранения строк
С int-овскими все работает прекрасно но char не хочет выводиться. #include &quot;stdafx.h&quot;...

Линейный двусвязный список для хранения записей
Добрый вечер. Нужна блок-схема к данному коду #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...

Односторонний список для хранения целых чисел
Cоздайте односторонний список для хранения целых чисел. Cоздайте программу, которая позволит вам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru