小编Sat*_*rom的帖子

在PL/pgSQL函数中检测到死锁

我正在使用PostgreSQL数据库中的PL/pgSQL函数来解决死锁问题.请在代码块中找到SQL语句(只是示例):

BEGIN
UPDATE accounts SET balance = 0 WHERE acct_name like 'A%';
UPDATE accounts SET balance = balance + 100 WHERE acct_name like '%A';
EXCEPTION WHEN OTHERS THEN RAISE NOTICE SQLERRM;
END;
Run Code Online (Sandbox Code Playgroud)

我发现在这个语句运行期间发生了死锁.但我不确定是否有其他语句试图同时更新此表(因为我在我的日志记录系统中没有找到任何语句).

那么,这句话中是否可能出现死锁?据我所知,如果我们用BEGIN/ 阻止整个陈述END.将有相同的交易,不应自行锁定.

postgresql concurrency deadlock plpgsql

13
推荐指数
1
解决办法
4万
查看次数

C#Windows CE .net 3.5检查内存使用情况

我是这个地方的新手,也是C#mobile的首发.现在,我正在研究C#手持设备平台.所以,我有一些问题要询问如何获取内存使用情况.我尝试了GC.GetTotalMemory()并获取GC使用的已分配内存.但是,我可以使用它来估计我的应用程序分配了多少内存.我想这可能不是实际的正确.然后我尝试谷歌搜索任何参考或类或任何用于检查Windows CE内存的东西,但我发现只在另一个平台不支持我正在做的事情.

先谢谢,Stoper


为此我道歉,我离开了这篇文章.

我非常感谢任何回答我的问题并留意这篇文章的人.

现在,通过在我的项目中实现"OpenNetCF"引用,我获得了所需的一切.

再次感谢 ;)

c# windows handheld windows-ce .net-3.5

5
推荐指数
1
解决办法
5097
查看次数

是否可以完全阻止.NET Compact Framework上的多个实例?

因为我尝试了许多方法来停止在.net紧凑框架3.5上运行的手持设备上的多实例问题.

目前,我通过创建"Mutex"获得解决方案,并检查是否有相同的进程正在运行.我把这个语句放在"Program.cs"中,它将在程序启动时第一次执行.

但我认为这不是我的问题,因为我得到了用户的请求,他们需要在运行时禁用"程序图标".

我理解用户的观点,他们有时可能会在短时间内"打开"该程序多次或多次.所以,如果它仍然能够"打开".这意味着程序需要自己初始化,最终可能会失败.是否可以绝对阻止多个实例?还是有其他方式没有编程,如在Windows CE上编辑注册表?


这是我的源代码:

bool firstInstance;
NamedMutex mutex = new NamedMutex(false, "MyApp.exe", out firstInstance);

if (!firstInstance)
{
    //DialogResult dialogResult = MessageBox.Show("Process is already running...");
    Application.Exit();
}
Run Code Online (Sandbox Code Playgroud)

NamedMutex是OpenNetCF的类.

.net c# compact-framework multiple-instances handheld

2
推荐指数
1
解决办法
2829
查看次数