我读了一些关于如何使用log4j的文章.他们中的大多数都将以下代码作为开头:
Logger logger = Logger.getLogger("com.foo.Bar");
Run Code Online (Sandbox Code Playgroud)
要么
Logger logger = Logger.getLogger(XXX.class);
Run Code Online (Sandbox Code Playgroud)
这将初始化记录器对象.但我的问题是为什么需要将类类型作为参数发送?看来当我使用记录器时,我并不关心我在哪个类中使用它.所以Class类型似乎对记录器没有影响.如果我将一个logger声明为static和public,我可以在另一个类中调用这个logger,那么作者有意这样设计它吗?当我使用记录器时,Class类型会绑定一些东西吗?或者我可以将任何类类型发送到getLogger函数.
我在SQLite官方网站上找到了下载URLhttp://www.zentus.com/sqlitejdbc
.但使用此链接会导致:
404未找到.
sqlitejdbc有什么问题?我在哪里可以找到官方网站?
我正在使用CachedRowSet来保存ResultSet表单DB.根据一些演示代码:我写下面的代码:
CachedRowSetImpl crs = new CachedRowSetImpl();
Run Code Online (Sandbox Code Playgroud)
但是eclipse提示我CachedRowSetImpl无法解析为一个类型.所以我知道我需要导入一些包.但我不知道要导入哪一个?有谁知道?
我在下面写一个php文件.
<?php
interface people
{
public function take($s);
}
class engineer extends people
{
public function take($s){
echo $s;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
人是一个界面,工程师扩展人.但是,当我运行此代码时,错误:
Fatal error: Class engineer cannot extend from interface people in E:\php5\Mywwwroot\b.php on line 12
Run Code Online (Sandbox Code Playgroud)
发生了什么?我的PHP版本是5.4.
任务或任务<TResult>对象是等待的,因此我们可以在返回值为Task或Task <TResult>的对象上使用await键.任务或任务<TResult>是最常用的等待对象.
我们也可以定义我们自己的等待对象.对象应该具有以下资格.
我的问题是为什么微软没有提供限制这些等待对象的界面?目前实现等待对象的方法有点复杂.
我正在尝试将两个不同的gif文件合并到一个文件中.
首先,我学到了很多关于gif格式的知识.我知道延迟时间值是在图形控制扩展中设置的,这是一个gif文件块.
我保存了第一个gif并设置了FrameDelay值,代码如下:
ImageCodecInfo codeInfo = GetEncoder(ImageFormat.Gif);
System.Drawing.Imaging.Encoder saveEncoder = System.Drawing.Imaging.Encoder.SaveFlag;
EncoderParameters parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(saveEncoder, (long)EncoderValue.MultiFrame);
PropertyItem PropertyTagFrameDelay = img1.GetPropertyItem(0x5100);
PropertyTagFrameDelay.Value = new byte[] { 0x96, 0x00 };// this is the delay value 0x0096, means 1.5 second
img1.SetPropertyItem(PropertyTagFrameDelay);
PropertyItem LoopCount = img1.GetPropertyItem(0x5101);
LoopCount.Value = new byte[] { 0x00, 0x00 };// this means the gif loops endlessly
img1.SetPropertyItem(LoopCount);
img1.Save(@"c:\ddd.gif", codeInfo, parameters);
Run Code Online (Sandbox Code Playgroud)
然后我尝试添加另一个图像作为第二帧.
parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(saveEncoder, (long)EncoderValue.FrameDimensionTime);
PropertyTagFrameDelay = img2.GetPropertyItem(0x5100);
PropertyTagFrameDelay.Value = …
Run Code Online (Sandbox Code Playgroud) 我读了一些关于窗口线程池的部分.它看起来像CLR线程池.
CLR基于Windows,所以CLR线程基于windows线程池,是不是?
我知道每个.net进程都有一个线程池,windows线程池中的情况是什么?操作系统有一个线程池还是多个?
在C#中,开发人员可以通过代码控制窗口线程池吗?
我只是对线程和UI控件感到好奇.
根据我的测试代码,当我运行编译的.exe文件时,线程访问进程条没有任何问题.但是当我调试代码时,会出现InvalidOperationException.(无论是汇集的线程还是正常的线程.)
所以我知道线程不允许访问UI控件,但是为什么在运行.exe文件时它没问题.这是一个预期的设计吗?
PS.I知道我们可以使用backgroundworker来使事情变得优雅.
private void button1_Click(object sender, EventArgs e)
{
Task.Factory.StartNew(dothing);//use the pooled thread
//Thread t = new Thread(new ThreadStart(this.ThreadProcSafe));
//t.Start();
}
private void dothing()
{
for (int i = 1; i <= 100; i++)
{
progressBar2.Value = i;
Thread.Sleep(100);
}
}
Run Code Online (Sandbox Code Playgroud) 我注意到在Python中,字符串对象只保留一份副本。就像下面的代码:
>>> s1='abcde'
>>> s2='abcde'
>>> s1 is s2
True
Run Code Online (Sandbox Code Playgroud)
s1和s2指向同一个对象。
当我编辑 s1 时,s2 仍然保留对象('abcde'),但 s1 指向一个新副本。这种行为就像写时复制。
>>> s1=s1+'f'
>>> s1 is s2
False
>>> s1
'abcdef'
>>> s2
'abcde'
Run Code Online (Sandbox Code Playgroud)
那么Python真的在字符串对象上使用写时复制机制吗?
c# ×5
java ×4
jdbc ×2
async-await ×1
asynchronous ×1
c#-5.0 ×1
cachedrowset ×1
clr ×1
gif ×1
image ×1
inheritance ×1
interface ×1
java-ee ×1
log4j ×1
php ×1
polymorphism ×1
pool ×1
python ×1
sqlite ×1
string ×1
threadpool ×1
types ×1
unix ×1