Difference between revisions of "love.thread.getChannel (日本語)"

(New translation (Based revision : 18 December 2013, at 08:33))
 
m (Translation updated.)
 
Line 10: Line 10:
 
=== 返値 ===
 
=== 返値 ===
 
{{param|Channel|channel|Channel オブジェクトに関連づけられた名前。}}
 
{{param|Channel|channel|Channel オブジェクトに関連づけられた名前。}}
 +
== 用例 ==
 +
=== メイン/スレッド間で通信を行います ===
 +
<source lang="lua">
 +
-- メイン側
 +
thread = love.thread.newThread ( "thread.lua" );
 +
thread:start ();
 +
channel = {};
 +
channel.a = love.thread.getChannel ( "a" );
 +
channel.b = love.thread.getChannel ( "b" );
 +
channel.b:push ( "foo" );
 +
 +
function love.update ( dt )
 +
local v = channel.a:pop ();
 +
if v then
 +
print ( tostring ( v ) );
 +
channel.b:push ( "foo" );
 +
end
 +
end
 +
 +
-- スレッド側
 +
channel = {};
 +
channel.a = love.thread.getChannel ( "a" );
 +
channel.b = love.thread.getChannel ( "b" );
 +
 +
while true do
 +
local v = channel.b:pop ();
 +
if v then
 +
print ( tostring ( v ) );
 +
channel.a:push ( "bar" );
 +
end
 +
end
 +
</source>
  
 
== 関連 ==
 
== 関連 ==

Latest revision as of 06:29, 24 September 2017

LÖVE 0.9.0 から使用可能
この関数は以前のバージョンでは非対応です。

名前ありスレッドのチャンネルを作成または検索します。

関数

概要

channel = love.thread.getChannel( name )

引数

string name
作成または検索をしたいチャンネルの名前。

返値

Channel channel
Channel オブジェクトに関連づけられた名前。

用例

メイン/スレッド間で通信を行います

-- メイン側
thread		= love.thread.newThread ( "thread.lua" );
thread:start ();
channel		= {};
channel.a	= love.thread.getChannel ( "a" );
channel.b	= love.thread.getChannel ( "b" );
channel.b:push ( "foo" );

function love.update ( dt )
	local v = channel.a:pop ();
	if v then
		print ( tostring ( v ) );
		channel.b:push ( "foo" );
	end
end

-- スレッド側
channel 	= {};
channel.a	= love.thread.getChannel ( "a" );
channel.b	= love.thread.getChannel ( "b" );

while true do
	local v = channel.b:pop ();
	if v then
		print ( tostring ( v ) );
		channel.a:push ( "bar" );
	end
end

関連


その他の言語