我的J2EE webapp启动时,我一次填充一个集合.然后,几个线程可以同时访问它,但只能读取它.
我知道使用同步集合对于并行写入是强制性的,但是我仍然需要它来进行并行读取吗?
我有一个用PyObjC编写的statusItem应用程序.statusItem有一个menuItem,它应该在单击时启动一个新窗口:
# Create statusItem
statusItem = NSStatusBar.systemStatusBar().statusItemWithLength_(NSVariableStatusItemLength)
statusItem.setHighlightMode_(TRUE)
statusItem.setEnabled_(TRUE)
statusItem.retain()
# Create menuItem
menu = NSMenu.alloc().init()
menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Preferences', 'launchPreferences:', '')
menu.addItem_(menuitem)
statusItem.setMenu_(menu)
Run Code Online (Sandbox Code Playgroud)
launchPreferences:方法是:
def launchPreferences_(self, notification):
preferences = Preferences.alloc().initWithWindowNibName_('Preferences')
preferences.showWindow_(self)
Run Code Online (Sandbox Code Playgroud)
Preferences是NSWindowController类:
class Preferences(NSWindowController):
Run Code Online (Sandbox Code Playgroud)
当我在XCode(Build&Go)中运行应用程序时,这很好用.但是,当我从XCode外部运行构建的.app文件时,statusItem和menuItem按预期显示,但是当我单击Preferences menuItem时,窗口不会出现.我已通过检查控制台输出验证了launchPreferences代码是否正在运行.
此外,如果我再次双击.app文件,则会出现窗口但如果我通过单击(例如,在Finder窗口上)更改活动窗口,则首选项窗口将消失.在我看来,这与活动窗口有关.
更新1 我尝试了这 两个答案,但都没有工作.如果我添加到launchPreferences方法:
preferences.makeKeyAndOrderFront_()
Run Code Online (Sandbox Code Playgroud)
要么
preferences.setLevel_(NSNormalWindowLevel)
Run Code Online (Sandbox Code Playgroud)
那我只是得到一个错误:
'Preferences'对象没有属性
C++是我真正进入的第一种编程语言,但我的大部分工作都是学术或游戏编程.我居住的大多数编程工作都需要Java或.NET程序员,除了基本语言之外,我对他们需要什么技术有相当好的了解.例如,Java程序员可能需要了解EJB,Servlets,Hibernate,Spring以及其他技术,库和框架.
但是,我不确定C++.在现实生活中,对于一般的业务编程,除了语言特性之外,C++程序员还需要了解什么?像Win32 API,某些库,框架,技术,工具等等.
编辑:当我说基本语言时,我也想到了标准库,对不起,如果它错了或不清楚.我想知道是否有更多特定的域要求类似于Java或.NET程序员可能需要学习的所有技术,以及C++程序员通常需要知道的内容.我同意标准库和Boost是必不可少的,但除此之外还有什么或者每个公司/项目/域都有所不同吗?
我有一个包含两个TForm类的程序,并且每个程序都添加了一个TMainMenu.然后我尝试在运行时动态合并它们.
我的问题是,当他们合并TMainMenu中合并的菜单项时,现在以合并的形式显示存储在图像列表中的图像,而不是存储在其原始形式的图像列表中的图像.
难道我做错了什么?是否有一个解决方法,以便菜单项继续使用它们源自的形式的图像列表?
我在许多项目中使用合并形式,否则单个共享图像列表是有意义的.
如果我需要澄清任何事情,请说.
谢谢
彼得
鉴于以下习语:
1)
variable = value1
if condition
variable = value2
Run Code Online (Sandbox Code Playgroud)
2)
variable = value2
if not condition
variable = value1
3)
if condition
variable = value2
else
variable = value1
4)
if not condition
variable = value1
else
variable = value2
你更喜欢哪个?为什么?
我们假设最常见的执行路径condition
是假的.
我倾向于学习使用1),虽然我不确定为什么我更喜欢它.
注意:以下示例可能更简单 - 因此可能更具可读性 - 但并非所有语言都提供此类语法,并且它们不适合将变量赋值扩展为包含将来的多个语句.
variable = condition ? value2 : value1
...
variable = value2 if condition else value1
Run Code Online (Sandbox Code Playgroud) 至于我收集(读取:测量),到目前为止构建配置和sessionfactory需要花费大量时间使用nhibernate执行查询.是否有任何反对使sessionfactory静态,所以每个appDomain只配置一次?
我知道在使用这种方法时存在锁定和竞争问题,但我个人并不认为在sessionfactory上使用这种方法会破坏我的应用程序.
我问这个的原因是因为它很难测试可能的线程问题,因为它不会一直发生.
在过去的几年里,我一直是一名本地C++程序员.现在我们从头开始一个新项目.那么您对以C++\CLI转移而牺牲平台无关代码的想法是什么?转换到C++\CLI可以获得任何特殊优势吗?
任何人都有任何单元测试PL/SQL的经验或工具.我见过的最好看的工具似乎是Quests Code Tester,但我不确定与持续集成工具或命令行测试的集成有多好?
当我使用MS SQL Server Management Studio备份或恢复数据库时,我可以直观地看到进程进展的程度,以及我还需要等待多长时间才能完成.如果我用脚本开始备份或恢复,有没有办法监控进度,或者我只是坐下来等待它完成(希望没有出错?)
编辑:我的需要是能够完全独立于启动备份或恢复的会话监视备份或恢复进度.
c# ×2
c++ ×2
oracle ×2
plsql ×2
asp.net ×1
backup ×1
c++-cli ×1
c++builder ×1
caching ×1
cocoa ×1
coding-style ×1
delphi ×1
idioms ×1
java ×1
nhibernate ×1
pyobjc ×1
python ×1
restore ×1
sql-server ×1
unit-testing ×1
vcl ×1