我正在尝试制作一个简单的测试战斗游戏,用户可以互相竞争。当用户单击开始按钮时,它首先检查 is_available 表上是否有可用用户,然后删除该行并开始游戏。如果不是,则将用户数据放在行上。 (仅会有一行可用)我的问题是,当同时有很多请求时,此逻辑是否有效?谢谢
答案 0 :(得分:2)
您应该在Google上搜索Queue System
。
struct BankCustomer
{
internal string name;
internal string bankingActivity;
internal int accountNumber;
internal float amount;
}
enum BankingActivity
{ deposit, withdrawl, transferFunds }
Queue localBankQueue = new Queue();
private BankCustomer localBankCustomer;
localBankCustomer.name = "J P Morgan";
localBankCustomer.bankingActivity = BankingActivity.deposit.ToString();
localBankCustomer.accountNumber = 335445;
localBankCustomer.amount = 5600.00F;
//call this on click
localBankQueue.Enqueue(localBankCustomer);
查看此链接:https://www.codeproject.com/Articles/16838/The-Use-of-Queues-in-C
答案 1 :(得分:2)
而不是删除;您可以添加时间方面,并使用GMT / UTC时间中早于6个小时的记录清除表。您想走那条路,因为您必须检查美国时区的夏令时,而不会使用UTC时间。从技术角度来看,DELETES会将日志记录保持为跨日志记录;因此,即使您的表中没有行或数据,您的事务日志也可以从以前的删除操作中获取。