凡.NET技术的各方面有问必答(不带邮箱的)

kcitwm 2010-02-08 09:55:34


凡.NET各技术各方向,有问题就问我吧,除节特殊情况尽量保证每天上来解答!!!
(附:有哪些不开心的红星闪闪的高手有骂我说我没关系,但不要怂恿版主来删除我的帖子好么?)


...全文
594 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigdiesel 2010-02-09
  • 打赏
  • 举报
回复
http://topic.csdn.net%2Fu%2F20100202%2F00%2Feca678bb-68fe-49b1-a556-f0781f90d76a.html

请教一个在C#下使用sharppcap抓包的问题
kcitwm 2010-02-09
  • 打赏
  • 举报
回复
我也还没有完全编译过的,

只是一个参考,内在管理在.NET中有很多策略. 单纯用byte[]在复杂的情况效果不一定好.ArraySegment 之类有很大裨益.
kcitwm 2010-02-09
  • 打赏
  • 举报
回复
请到:
http://topic.csdn.net/u/20100208/15/f4942318-0f4b-4a65-8e75-0db1092cc563.html?15075
提问,两边忙不过来.

发帖几次是因为原来没有了解到这里的潜规则,一发出来就被人误解为动机不纯,到处招骂. 所以现在归到上面的帖子里面回答.
qq254242213 2010-02-09
  • 打赏
  • 举报
回复
adsdasdadadad
xiangbupingfan 2010-02-09
  • 打赏
  • 举报
回复
mathematical 2010-02-09
  • 打赏
  • 举报
回复
米か臹 2010-02-09
  • 打赏
  • 举报
回复
加你为好友了 以后有问题就找你问啊
xiaofeiVSmugua 2010-02-09
  • 打赏
  • 举报
回复
引用 47 楼 guyschaos 的回复:
有时候话说的多了就成炒作了……

低调才是最牛逼的炫耀

哥子说的好。顶。。。。。。
xiaofeiVSmugua 2010-02-09
  • 打赏
  • 举报
回复
引用 47 楼 guyschaos 的回复:
有时候话说的多了就成炒作了……

低调才是最牛逼的炫耀


哥子时候的好。。。
贫僧又回来了 2010-02-09
  • 打赏
  • 举报
回复
有时候话说的多了就成炒作了……

低调才是最牛逼的炫耀
卧_槽 2010-02-09
  • 打赏
  • 举报
回复
引用 31 楼 zhqwedsa 的回复:
引用 29 楼 kcitwm 的回复:
你用的是PEN,要用填充的,,现在画出来的是一个半圆彩虹.自己慢慢学哇.多看书.
我第一次问你时就说了,是有别的画半圆的方法。
我知道这样画半圆不对,我就是想问我错在哪?pen这样用为什么会是这种效果?
我看哪本书才可以解决问题呢?

你光这样讲谁都会,
看书去,“万解”

你问的实在没什么好说的,书上写的清清楚楚。
kcitwm 2010-02-08
  • 打赏
  • 举报
回复
9楼:
要像设计时那样控件大小得自己写GDI+代码,自己画.

11楼:
把第二个参数的0改为:90.
GDI+使用的坐标体系与常用的几何坐标系不一样,需要加上90度.
mbh0210 2010-02-08
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 mohugomohu 的回复:]
其实我比较反感那种骂人的回复
[/Quote]

严重同意.
mohugomohu 2010-02-08
  • 打赏
  • 举报
回复
其实我比较反感那种骂人的回复
mohugomohu 2010-02-08
  • 打赏
  • 举报
回复
张扬不是错,支持
kcitwm 2010-02-08
  • 打赏
  • 举报
回复
先解答一样带邮箱那里面有一个人提出的问题:
qldsrx(青龙白虎) 算了,免得说我欺负人。如果楼主可以给出Socket通讯中,AsyncXXX系列方法使用如何很好的管理内存的示例....?

这个问题要说就要长篇大论了,我有一点代码也许对你有帮助:


public class BufferManager
{
private readonly int segChunks;
private readonly int chunkSize;
private readonly int segSize;
private readonly LockFreeStack<ArraySegment<byte>> buffers;
private readonly object lockObj = new Object();
private readonly List<byte[]> segments;


public int AvailableBuffers
{
get { return buffers.Count; }
}


public int TotalBufferSize
{
get { return segments.Count * segSize; }
}


private void CreateNewSegment()
{
byte[] bytes = new byte[segChunks * chunkSize];
segments.Add(bytes);
for (int i = 0; i < segChunks; i++)
{
ArraySegment<byte> chunk = new ArraySegment<byte>(bytes, i * chunkSize, chunkSize);
buffers.Push(chunk);
}
}


public ArraySegment<byte> CheckOut()
{
ArraySegment<byte> b;
while (true)
{
while (true)
{
bool found = !buffers.TryPop(out b);
if (!found)
{
lock (lockObj)
{
if (buffers.Count == 0)
{
CreateNewSegment();
}
}
}
else
{
return b;
}
}

}


public void CheckIn(ArraySegment<byte> _Buffer) {
buffers.Push(_Buffer);
}

#region constructors


public BufferManager(int segChunk, int size) :
this(segChunk, size, 1) { }


public BufferManager(int segChunks, int chunkSize, int initSeg) {
this.segChunks = segChunks;
this.chunkSize = chunkSize;
segSize = segChunks * chunkSize;
buffers = new LockFreeStack<ArraySegment<byte>>(segChunks * initSeg);
segments = new List<byte[]>();
for (int i = 0; i < initSeg; i++) {
CreateNewSegment();
}
}
}


public class BufferManager2
{
private readonly int segChunks;
private readonly int chunkSize;
private readonly int segSize;
private readonly Stack<ArraySegment<byte>> buffers;
private readonly object lockObj = new Object();
private readonly List<byte[]> segments;


public int AvailableBuffers
{
get { return buffers.Count; }
}

public int TotalBufferSize
{
get { return segments.Count * segSize; }
}

private void CreateNewSegment()
{
byte[] bytes = new byte[segChunks * chunkSize];
segments.Add(bytes);
for (int i = 0; i < segChunks; i++)
{
ArraySegment<byte> chunk = new ArraySegment<byte>(bytes, i * chunkSize, chunkSize);
buffers.Push(chunk);
}
}


public ArraySegment<byte> CheckOut() {
lock (lockObj)
{
if (buffers.Count == 0)
{
CreateNewSegment();
}
return buffers.Pop();
}
}


public void CheckIn(ArraySegment<byte> _Buffer)
{
lock (lockObj)
{
buffers.Push(_Buffer);
}
}



public BufferManager2(int segChunks, int size) : this(segChunks, size, 1) { }


public BufferManager2(int segChunks, int chunkSize, int initSeg) {
this.segChunks = segChunks;
this.chunkSize = chunkSize;
segSize = segChunks * chunkSize;
buffers = new LockFreeStack<ArraySegment<byte>>(segChunks * initSeg);
segments = new List<byte[]>();
for (int i = 0; i < initSeg; i++) {
CreateNewSegment();
}
}
}
kcitwm 2010-02-08
  • 打赏
  • 举报
回复
关于话外的问题最后讨论一次了.

我个人认为,我们最好把现实世界和虚拟世界区分开,就好像你在现实中不太可能去邻家园子里面偷菜一样,更不可能拿着AK47到处爆头. 游戏是游戏,虚拟是虚拟. 每个人或多或少都有精神和人格的分裂,在每一种舞台上你可能扮演不同的角色,在这里我说我是神我就是神,你说你是神我也不反对.反正坐着对着电脑说话不腰疼的. 前提是不伤害别人,不污辱别人. 游戏就是游戏,虚幻就是虚幻,人生一世,百年后我们皆化为尘土,我只想为大家做点好事,不用戴什么高尚,高傲的帽子,雷锋也是自私的,为了实现自己精神理想的一种自私. 自我的表现欲在现实中发挥不完,在这里来张扬下并无过错.但无论在现实还是虚幻之中我懂得尊重,尊敬别人. 但谦虚,谨慎之类词就好比聪明和狡猾一样,花心和风流一样无所谓对错好坏,只是在不同的环境,不同的社会下的不同理解罢了,就好比现代人难忍三妻四妾在古代是正常现象一样,就好比现代每一个人在60,70年代都会骂成道德败坏一样.
zhqwedsa 2010-02-08
  • 打赏
  • 举报
回复
晕,你怂恿版主删楼主的贴,那你先帮我解答下,谢谢了
itliyi 2010-02-08
  • 打赏
  • 举报
回复
版主 建议您删了这帖 看lz这样的人实在是恶心
zhqwedsa 2010-02-08
  • 打赏
  • 举报
回复
g.DrawArc(new Pen(Color.Red, 50), new RectangleF(200, 200, 50, 50), 0, 180);
为什么我这样画出来不是半圆啊??
有其他办法可以画半圆,我就是想知道为什么这样画出来不是半圆啊
请教楼主了
加载更多回复(33)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧