Skip to content

Commit 19341bc

Browse files
committed
Fix a bug
修复空房太多会造成卡死的问题
1 parent 4032a82 commit 19341bc

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

HousingCheck/HousingCheck.cs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,8 @@ string HousingListToJson()
144144
);
145145
}
146146

147-
void NetworkReceived(string connection, long epoch, byte[] message)
147+
void NetworkReceivedSync(byte[] message)
148148
{
149-
var opcode = BitConverter.ToUInt16(message, 18);
150-
if (opcode != 0x164 && message.Length != 2440) return;
151149
HousingSlotSnapshot snapshot;
152150
try
153151
{
@@ -161,23 +159,22 @@ void NetworkReceived(string connection, long epoch, byte[] message)
161159
//存入存储
162160
SnapshotStorage.Insert(snapshot);
163161
AutoUploadSnapshot[new Tuple<HouseArea, int>(snapshot.Area, snapshot.Slot)] = snapshot;
164-
165-
foreach(HousingOnSaleItem item in HousingList)
162+
163+
foreach (HousingOnSaleItem item in HousingList)
166164
{
167-
if(item.Area == snapshot.Area && item.Slot == snapshot.Slot)
165+
if (item.Area == snapshot.Area && item.Slot == snapshot.Slot)
168166
{
169167
item.CurrentStatus = false;
170168
}
171169
}
172170

173171
HousingItem[] onSaleList = snapshot.GetOnSale();
174172

175-
Monitor.Enter(this);
176173
foreach (var item in HousingList)
177174
{
178175
if (item.Area == snapshot.Area && item.Slot == snapshot.Slot)
179176
{
180-
if(onSaleList.Where(x => x.Slot == item.Slot && x.IsEmpty)
177+
if (onSaleList.Where(x => x.Slot == item.Slot && x.IsEmpty)
181178
.ToArray().Length == 0)
182179
{
183180
//空房已消失
@@ -187,7 +184,7 @@ void NetworkReceived(string connection, long epoch, byte[] message)
187184
{
188185
bindingSource1.ResetItem(HousingList.IndexOf(item));
189186
}
190-
catch(Exception ex)
187+
catch (Exception ex)
191188
{
192189
Log("Error", ex, "刷新列表出错:");
193190
}
@@ -197,7 +194,7 @@ void NetworkReceived(string connection, long epoch, byte[] message)
197194

198195
int listIndex;
199196
//更新空房列表
200-
foreach(HousingItem house in onSaleList)
197+
foreach (HousingItem house in onSaleList)
201198
{
202199
HousingOnSaleItem onSaleItem = new HousingOnSaleItem(house);
203200
Log("Info", string.Format("{0} 第{1}区 {2}号 {3}房在售 当前价格: {4}",
@@ -225,7 +222,6 @@ void NetworkReceived(string connection, long epoch, byte[] message)
225222
Log("Info", string.Format("{0} 第{1}区查询完成",
226223
HousingItem.GetHouseAreaStr(snapshot.Area),
227224
snapshot.Slot + 1)); //输出翻页日志
228-
Monitor.Exit(this);
229225
}
230226
catch (Exception ex)
231227
{
@@ -234,6 +230,14 @@ void NetworkReceived(string connection, long epoch, byte[] message)
234230
}
235231
}
236232

233+
void NetworkReceived(string connection, long epoch, byte[] message)
234+
{
235+
var opcode = BitConverter.ToUInt16(message, 18);
236+
if (opcode != 0x164 && message.Length != 2440) return;
237+
238+
control.Invoke(new Action<byte[]>(NetworkReceivedSync), message);
239+
}
240+
237241
private void ButtonUploadOnce_Click(object sender, EventArgs e)
238242
{
239243
Log("Info", $"准备上报");

HousingCheck/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
// You can specify all the values or you can default the Build and Revision Numbers
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
35-
[assembly: AssemblyVersion("1.3.5.0")]
36-
[assembly: AssemblyFileVersion("1.3.5.0")]
35+
[assembly: AssemblyVersion("1.3.7.0")]
36+
[assembly: AssemblyFileVersion("1.3.7.0")]

0 commit comments

Comments
 (0)