Skip to content

Commit bdc1283

Browse files
committed
fix multithread conflict on stoptask flag
1 parent 227f76f commit bdc1283

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

TbsCore/Tasks/LowLevel/BotTask.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Threading;
23
using System.Threading.Tasks;
34
using TbsCore.Models.AccModels;
45
using TbsCore.Models.VillageModels;
@@ -52,7 +53,19 @@ public abstract class BotTask
5253
/// </summary>
5354
public TaskPriority Priority { get; set; }
5455

55-
protected bool StopFlag = false;
56+
private long stopFlag;
57+
58+
public bool StopFlag
59+
{
60+
get
61+
{
62+
return Interlocked.Read(ref stopFlag) == 1;
63+
}
64+
set
65+
{
66+
Interlocked.Exchange(ref stopFlag, Convert.ToInt64(value));
67+
}
68+
}
5669

5770
protected void Retry(Account acc, string message)
5871
{

TbsCore/Tasks/LowLevel/UpgradeBuilding.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class UpgradeBuilding : BotTask
2323

2424
public override async Task<TaskRes> Execute(Account acc)
2525
{
26+
StopFlag = false;
2627
do
2728
{
2829
if (StopFlag) return TaskRes.Executed;

0 commit comments

Comments
 (0)