Skip to content

Commit

Permalink
Fix a bug
Browse files Browse the repository at this point in the history
修复空房太多会造成卡死的问题
  • Loading branch information
hyperzlib committed Apr 22, 2021
1 parent 4032a82 commit 19341bc
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 13 deletions.
26 changes: 15 additions & 11 deletions HousingCheck/HousingCheck.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,8 @@ string HousingListToJson()
);
}

void NetworkReceived(string connection, long epoch, byte[] message)
void NetworkReceivedSync(byte[] message)
{
var opcode = BitConverter.ToUInt16(message, 18);
if (opcode != 0x164 && message.Length != 2440) return;
HousingSlotSnapshot snapshot;
try
{
Expand All @@ -161,23 +159,22 @@ void NetworkReceived(string connection, long epoch, byte[] message)
//存入存储
SnapshotStorage.Insert(snapshot);
AutoUploadSnapshot[new Tuple<HouseArea, int>(snapshot.Area, snapshot.Slot)] = snapshot;
foreach(HousingOnSaleItem item in HousingList)

foreach (HousingOnSaleItem item in HousingList)
{
if(item.Area == snapshot.Area && item.Slot == snapshot.Slot)
if (item.Area == snapshot.Area && item.Slot == snapshot.Slot)
{
item.CurrentStatus = false;
}
}

HousingItem[] onSaleList = snapshot.GetOnSale();

Monitor.Enter(this);
foreach (var item in HousingList)
{
if (item.Area == snapshot.Area && item.Slot == snapshot.Slot)
{
if(onSaleList.Where(x => x.Slot == item.Slot && x.IsEmpty)
if (onSaleList.Where(x => x.Slot == item.Slot && x.IsEmpty)
.ToArray().Length == 0)
{
//空房已消失
Expand All @@ -187,7 +184,7 @@ void NetworkReceived(string connection, long epoch, byte[] message)
{
bindingSource1.ResetItem(HousingList.IndexOf(item));
}
catch(Exception ex)
catch (Exception ex)
{
Log("Error", ex, "刷新列表出错:");
}
Expand All @@ -197,7 +194,7 @@ void NetworkReceived(string connection, long epoch, byte[] message)

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

void NetworkReceived(string connection, long epoch, byte[] message)
{
var opcode = BitConverter.ToUInt16(message, 18);
if (opcode != 0x164 && message.Length != 2440) return;

control.Invoke(new Action<byte[]>(NetworkReceivedSync), message);
}

private void ButtonUploadOnce_Click(object sender, EventArgs e)
{
Log("Info", $"准备上报");
Expand Down
4 changes: 2 additions & 2 deletions HousingCheck/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.3.5.0")]
[assembly: AssemblyFileVersion("1.3.5.0")]
[assembly: AssemblyVersion("1.3.7.0")]
[assembly: AssemblyFileVersion("1.3.7.0")]

0 comments on commit 19341bc

Please sign in to comment.